Declaração de importações do VB.NET versus referências

O efeito real da declaração Imports no VB.NET geralmente é uma fonte de confusão para as pessoas que aprendem o idioma. E a interação com o VB.NET References cria ainda mais confusão. Vamos esclarecer isso nesta dica rápida.

Aqui está um breve resumo de toda a história. Depois, examinaremos os detalhes.

Uma referência a um espaço para nome do VB.NET é um requisito e deve ser adicionado a um projeto antes que os objetos no espaço para nome possam ser usados. (Um conjunto de referências é adicionado automaticamente para o modelos diferentes no Visual Studio ou VB.NET Express. Clique em "Mostrar todos os arquivos" no Solution Explorer para ver o que são.) Mas a declaração Imports não é um requisito. Em vez disso, é simplesmente uma conveniência de codificação que permite que nomes mais curtos sejam usados.

Agora vamos ver um exemplo real. Para ilustrar essa idéia, vamos usar o sistema. Namespace de dados - que fornece tecnologia de dados ADO.NET.

Sistema. Os dados são adicionados aos aplicativos do Windows como referência, por padrão, usando o modelo de aplicativo Windows Forms do VB.NET.

instagram viewer

Adicionando um espaço para nome na coleção de referências

A adição de um novo espaço para nome à coleção References em um projeto também torna os objetos desse espaço para o projeto. O efeito mais visível disso é que o "Intellisense" do Visual Studio o ajudará a encontrar os objetos nas caixas de menu pop-up.

Se você tentar usar um objeto no seu programa sem uma referência, a linha de código gerará um erro.

A declaração de importações, por outro lado, nunca é necessária. A única coisa que faz é permitir que o nome seja resolvido sem ser totalmente qualificado. Em outras palavras (ênfase adicionada para mostrar as diferenças).

 Importações Sistema. Dados

 Public Class Form1

 Herda o sistema. Janelas. Formulários. Formato

 Sub Formulário Privado1_Load (...

 Teste não ofuscante como OleDb. OleDbCommand

 End Sub

 Classe final 

e

 Importações Sistema. Dados. OleDb

 Public Class Form1

 Herda o sistema. Janelas. Formulários. Formato

 Sub Formulário Privado1_Load (...

 Teste não ofuscante como OleDbCommand

 End Sub

 Classe final 

são ambos equivalentes. Mas ...

 Importações Sistema. Dados

 Public Class Form1

 Herda o sistema. Janelas. Formulários. Formato

 Sub Formulário Privado1_Load (...

 Teste não ofuscante como OleDbCommand

 End Sub

 Classe final 

resulta em um erro de sintaxe ("O tipo 'OleDbCommand' não está definido") devido ao Namespace de importações Sistema de qualificação. Os dados não fornecem informações suficientes para localizar o objeto OleDbCommand.

Embora a qualificação de nomes em seu código fonte do programa pode ser coordenado em qualquer nível na hierarquia 'aparente', você ainda precisa escolher o espaço para nome certo para referência. Por exemplo, o .NET fornece um sistema. Namespace da Web e uma lista completa de outras pessoas começando com System. Rede ...

Nota

Existem dois arquivos DLL totalmente diferentes para as referências. Você precisa escolher o caminho certo, porque o WebService não é um método em um deles.