Instrução Imports (.NET Namespace and Type)

Permite que nomes de tipo sejam referenciados sem qualificação de namespace.

Sintaxe

Imports [ aliasname = ] namespace
' -or-
Imports [ aliasname = ] namespace.element

Partes

Termo Definição
aliasname Opcional. Um alias de importação ou nome pelo qual o código pode se referir em namespace vez da cadeia de caracteres de qualificação completa. Consulte Nomes de elementos declarados.
namespace Obrigatório. O nome totalmente qualificado do namespace que está sendo importado. Pode ser uma cadeia de namespaces aninhados em qualquer nível.
element Opcional. O nome de um elemento de programação declarado no namespace. Pode ser qualquer elemento de contêiner.

Observações

A Imports instrução permite que os tipos contidos em um determinado namespace sejam referenciados diretamente.

Você pode fornecer um único nome de namespace ou uma cadeia de caracteres de namespaces aninhados. Cada namespace aninhado é separado do próximo namespace de nível superior por um ponto (.), como ilustra o exemplo a seguir:

Imports System.Collections.Generic

Cada arquivo de origem pode conter qualquer número de Imports instruções. Elas devem seguir quaisquer declarações de opção, como a Option Strict instrução, e devem preceder quaisquer declarações de elementos de programação, como Module instruções ou Class .

Você só pode usar Imports no nível do arquivo. Isso significa que o contexto da declaração para importação deve ser um arquivo de origem e não pode ser um namespace, classe, estrutura, módulo, interface, procedimento ou bloco.

Observe que a Imports instrução não disponibiliza elementos de outros projetos e assemblies para o seu projeto. A importação não substitui a definição de uma referência. Ele apenas elimina a necessidade de qualificar nomes que já estão disponíveis para o seu projeto. Para obter mais informações, consulte "Importando elementos que contêm" em Referências a elementos declarados.

Nota

Você pode definir instruções implícitas Imports usando a página de referências, Project Designer (Visual Basic). Para obter mais informações, consulte Como adicionar ou remover namespaces importados (Visual Basic).

Importar aliases

Um alias de importação define o alias de um namespace ou tipo. Os aliases de importação são úteis quando você precisa usar itens com o mesmo nome declarados em um ou mais namespaces. Para obter mais informações e um exemplo, consulte "Qualificando um nome de elemento" em Referências a elementos declarados.

Você não deve declarar um membro no nível do módulo com o mesmo nome que aliasname. Se você fizer isso, o compilador do Visual Basic usa aliasname apenas para o membro declarado e não o reconhece mais como um alias de importação.

Embora a sintaxe usada para declarar um alias de importação seja semelhante à usada para importar um prefixo de namespace XML, os resultados são diferentes. Um alias de importação pode ser usado como uma expressão em seu código, enquanto um prefixo de namespace XML pode ser usado somente em literais XML ou propriedades de eixo XML como o prefixo para um elemento qualificado ou nome de atributo.

Nomes de elementos

Se você fornecer element, ele deve representar um elemento container, ou seja, um elemento de programação que pode conter outros elementos. Os elementos de contêiner incluem classes, estruturas, módulos, interfaces e enumerações.

O escopo dos elementos disponibilizados por uma Imports instrução depende de você especificar elementou não . Se você especificar apenas namespace, todos os membros nomeados exclusivamente desse namespace e os membros de elementos de contêiner dentro desse namespace estarão disponíveis sem qualificação. Se você especificar ambos namespace e element, somente os membros desse elemento estarão disponíveis sem qualificação.

Exemplo 1

O exemplo a seguir retorna todas as pastas no diretório C:\ usando a DirectoryInfo classe:

O código não tem instruções Imports na parte superior do arquivo. Portanto, o DirectoryInfo, StringBuildere CrLf as referências são totalmente qualificados com os namespaces.

Public Function GetFolders() As String
    ' Create a new StringBuilder, which is used
    ' to efficiently build strings.
    Dim sb As New System.Text.StringBuilder

    Dim dInfo As New System.IO.DirectoryInfo("c:\")

    ' Obtain an array of directories, and iterate through
    ' the array.
    For Each dir As System.IO.DirectoryInfo In dInfo.GetDirectories()
        sb.Append(dir.Name)
        sb.Append(Microsoft.VisualBasic.ControlChars.CrLf)
    Next

    Return sb.ToString
End Function

Exemplo 2

O exemplo a seguir inclui Imports instruções para os namespaces referenciados. Portanto, os tipos não precisam ser totalmente qualificados com os namespaces.

' Place Imports statements at the top of your program.
Imports System.Text
Imports System.IO
Imports Microsoft.VisualBasic.ControlChars
Public Function GetFolders() As String
    Dim sb As New StringBuilder

    Dim dInfo As New DirectoryInfo("c:\")
    For Each dir As DirectoryInfo In dInfo.GetDirectories()
        sb.Append(dir.Name)
        sb.Append(CrLf)
    Next

    Return sb.ToString
End Function

Exemplo 3

O exemplo a seguir inclui Imports instruções que criam aliases para os namespaces referenciados. Os tipos são qualificados com os aliases.

Imports systxt = System.Text
Imports sysio = System.IO
Imports ch = Microsoft.VisualBasic.ControlChars
Public Function GetFolders() As String
    Dim sb As New systxt.StringBuilder

    Dim dInfo As New sysio.DirectoryInfo("c:\")
    For Each dir As sysio.DirectoryInfo In dInfo.GetDirectories()
        sb.Append(dir.Name)
        sb.Append(ch.CrLf)
    Next

    Return sb.ToString
End Function

Exemplo 4

O exemplo a seguir inclui Imports instruções que criam aliases para os tipos referenciados. Os aliases são usados para especificar os tipos.

Imports strbld = System.Text.StringBuilder
Imports dirinf = System.IO.DirectoryInfo
Public Function GetFolders() As String
    Dim sb As New strbld

    Dim dInfo As New dirinf("c:\")
    For Each dir As dirinf In dInfo.GetDirectories()
        sb.Append(dir.Name)
        sb.Append(ControlChars.CrLf)
    Next

    Return sb.ToString
End Function

Consulte também