Imports 语句(.NET 命名空间和类型)

允许在没有命名空间限定的情况下引用类型名称。

语法

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

组成部分

术语 定义
aliasname 可选。 导入别名或名称,代码可以通过它而不是完全限定字符串引用 namespace。 请参阅 Declared Element Names
namespace 必需。 要导入的命名空间的完全限定名称。 可以是嵌套到任何级别的一串命名空间。
element 可选。 在命名空间中声明的编程元素的名称。 可以是任何容器元素。

注解

Imports 语句允许直接引用给定命名空间中包含的类型。

你可以提供单个命名空间名称或一串嵌套命名空间。 每个嵌套命名空间与下一个更高级别的命名空间之间用句点 (.) 分隔,如以下示例所示:

Imports System.Collections.Generic

每个源文件可以包含任意数量的 Imports 语句。 这些语句必须位于任何选项声明(例如 Option Strict 语句)之后,以及任何编程元素声明(例如 ModuleClass 语句)之前。

只能在文件级别使用 Imports。 这意味着导入的声明上下文必须是源文件,不能是命名空间、类、结构、模块、接口、过程或块。

请注意,无法通过 Imports 语句使其他项目和程序集中的元素可供你的项目使用。 导入不能代替设置引用。 它只是消除了对已经可供项目使用的名称进行限定的需要。 有关详细信息,请参阅对已声明元素的引用中的“导入包含元素”。

注意

可以使用项目设计器 ->“引用”页 (Visual Basic) 定义隐式 Imports 语句。 有关详细信息,请参阅如何:添加或移除导入的命名空间 (Visual Basic)

导入别名

导入别名定义命名空间或类型的别名。 如果需要使用在一个或多个命名空间中声明的同名项,导入别名很有用。 有关详细信息和示例,请参阅对已声明元素的引用中的“限定元素名称”。

不应在模块级别声明与 aliasname 同名的成员。 如果这样做,Visual Basic 编译器仅将 aliasname 用于已声明的成员,而不再将其识别为导入别名。

尽管用于声明导入别名的语法与用于导入 XML 命名空间前缀的语法类似,但结果却有所不同。 导入别名可用作代码中的表达式,而 XML 命名空间前缀只能在 XML 文本或 XML 轴属性中用作限定元素或属性名称的前缀。

元素名称

如果提供 element,它必须表示容器元素,即可以包含其他元素的编程元素。 容器元素包括类、结构、模块、接口和枚举。

Imports 语句提供的元素的范围取决于你是否指定了 element。 如果仅指定 namespace,则可以不加限定地使用该命名空间的所有唯一命名的成员以及该命名空间内的容器元素的成员。 如果同时指定 namespaceelement,则只能不加限定地使用该元素的成员。

示例 1

以下示例使用 DirectoryInfo 类返回 C:\ 目录中的所有文件夹:

该代码在文件顶部没有 Imports 语句。 因此,DirectoryInfoStringBuilderCrLf 引用均由命名空间完全限定。

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

示例 2

以下示例针对引用命名空间包含 Imports 语句。 因此,无需使用命名空间完全限定类型。

' 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

示例 3

以下示例包含为引用命名空间创建别名的 Imports 语句。 类型使用别名进行限定。

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

示例 4

以下示例包含为引用类型创建别名的 Imports 语句。 别名用于指定类型。

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

另请参阅