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

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

语法

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

部件

术语 定义
aliasname 可选。 导入别名或名称,代码可以引用namespace,而不是完全限定字符串。 请参阅 声明的元素名称
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指定,该命名空间的所有唯一命名成员以及该命名空间中的容器元素的成员均可用,且没有限定。 如果同时指定这两个 namespace 元素,并且 element只有该元素的成员才可用且没有限定。

示例 1

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

代码在文件顶部没有 Imports 语句。 因此,DirectoryInfo命名空间StringBuilderCrLf和引用都完全限定。

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

另请参阅