Instrucción Imports (Tipo y espacio de nombres de .NET)

Permite hacer referencia a los nombres de tipo sin cualificación del espacio de nombres.

Sintaxis

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

Partes

Término Definición
aliasname Opcional. Nombre o alias de importación mediante el que el código puede hacer referencia a namespace en lugar de la cadena de calificación completa. Vea Declared Element Names.
namespace Necesario. Nombre completo del espacio de nombres que se va a importar. Puede ser una cadena de espacios de nombres anidados en cualquier nivel.
element Opcional. Nombre de un elemento de programación declarado en el espacio de nombres. Puede ser cualquier elemento contenedor.

Comentarios

La instrucción Imports permite hacer referencia directamente a los tipos contenidos en un espacio de nombres determinado.

Puede proporcionar un nombre de espacio de nombres único o una cadena de espacios de nombres anidados. Cada espacio de nombres anidado está separado del de nivel superior por un punto (.), como se muestra en el ejemplo siguiente:

Imports System.Collections.Generic

Cada archivo de origen puede contener un número cualquiera de instrucciones Imports. Deben ir detrás de cualquier declaración de opción, como la instrucción Option Strict, y preceder a cualquier declaración de elemento de programación, como las instrucciones Module o Class.

Solo se puede usar Imports en un nivel de archivo. Esto significa que el contexto de la declaración para la importación debe ser un archivo de código fuente y no puede ser un espacio de nombres, una clase, una estructura, un módulo, una interfaz, un procedimiento ni un bloque.

Tenga en cuenta que la instrucción Imports no hace que los elementos de otros proyectos y ensamblados estén disponibles para su proyecto. La importación no sustituye al establecimiento de una referencia. Solo elimina la necesidad de calificar los nombres que ya están disponibles para el proyecto. Para obtener más información, consulte "Importación de elementos contenedor" en Referencias a elementos declarados.

Nota

Puede definir instrucciones Imports implícitas mediante la Página Referencias, Diseñador de proyectos (Visual Basic). Para obtener más información, consulte Cómo: Agregar o quitar espacios de nombres importados (Visual Basic).

Alias de importación

Un alias de importación define el alias de un espacio de nombres o un tipo. Los alias de importación son útiles cuando es necesario usar elementos con el mismo nombre que se declaran en uno o varios espacios de nombres. Para obtener más información y un ejemplo, consulte "Calificar un nombre de elemento" en Referencias a elementos declarados.

No debe declarar un miembro en el nivel de módulo con el mismo nombre que aliasname. Si lo hace, el compilador de Visual Basic solo usa aliasname para el miembro declarado y ya no lo reconoce como alias de importación.

Aunque la sintaxis utilizada para declarar un alias de importación es similar a la que se usa para importar un prefijo de espacio de nombres XML, los resultados son distintos. Un alias de importación se puede usar como expresión en el código, mientras que un prefijo de espacio de nombres XML solo se puede usar en literales XML o propiedades de eje XML como prefijo para un nombre de atributo o elemento calificado.

Nombres de elementos

Si proporciona element, debe representar un elemento contenedor, es decir, un elemento de programación que puede contener otros elementos. Los elementos contenedores incluyen clases, estructuras, módulos, interfaces y enumeraciones.

El ámbito de los elementos disponibles mediante una instrucción Imports depende de si se especifica element. Si solo se especifica namespace, todos los miembros con nombre único de ese espacio de nombres y los miembros de los elementos contenedores dentro de ese espacio de nombres están disponibles sin calificación. Si se especifican namespace y element, solo los miembros de ese elemento están disponibles sin calificación.

Ejemplo 1

En el ejemplo siguiente, se devuelven todas las carpetas del directorio C:\ mediante la clase DirectoryInfo:

El código no tiene instrucciones Imports en la parte superior del archivo. Por lo tanto, las referencias DirectoryInfo, StringBuilder y CrLf están completas con los espacios de nombres.

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

Ejemplo 2

En el ejemplo siguiente se incluyen instrucciones Imports para los espacios de nombres a los que se hace referencia. Por lo tanto, los tipos no tienen que estar completos con los espacios de nombres.

' 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

Ejemplo 3

En el ejemplo siguiente se incluyen instrucciones Imports que crean alias para los espacios de nombres a los que se hace referencia. Los tipos se califican con los alias.

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

Ejemplo 4

En el ejemplo siguiente se incluyen instrucciones Imports que crean alias para los tipos a los que se hace referencia. Los alias se usan para especificar los 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 también