-
Imports 语句(.NET 命名空间和类型)
使类型名称可以在不进行命名空间限定的情况下被引用。
Imports [ aliasname = ] namespace
-or-
Imports [ aliasname = ] namespace.element
部件
术语 |
定义 |
aliasname |
可选。 “导入别名”或名称,代码可按该名称而不是完全限定字符串来引用 namespace。 请参见已声明的元素名称 (Visual Basic)。 |
namespace |
必选。 所导入命名空间的完全限制名称。 可以为嵌套到任意级别的命名空间的字符串。 |
element |
可选。 命名空间中所声明编程元素的名称。 可以为任何容器元素。 |
备注
Imports 语句允许直接引用在给定的命名空间中包含的类型。
可以提供单个命名空间名称,也可以提供嵌套命名空间的字符串。 每个嵌套命名空间都通过句点 (.) 与下一个更高级别的命名空间分隔,如下面的示例中所述。
Imports System.Collections.Generic
每个源文件可以包含任意数量的 Imports 语句。 这些语句必须位于任何选项声明(如 Option Strict 语句)之后、任何编程元素声明(如 Module 或 Class 语句)之前。
只能在文件级别使用 Imports。 这意味着导入的声明上下文必须是源文件,而不能是命名空间、类、结构、模块、接口、过程或块。
请注意,Imports 语句不会将其他项目和程序集中的元素提供给您的项目使用。 导入不会取代对引用的设置, 它只是使那些已经可用于项目的名称不再需要加以限定。 有关更多信息,请参见 对已声明元素的引用 (Visual Basic) 中的“导入包含元素”。
提示
可以使用 项目设计器 ->“引用”页 (Visual Basic) 来定义隐式 Imports 语句。 有关更多信息,请参见 如何:添加或移除导入的命名空间 (Visual Basic)。
导入别名
“导入别名”定义命名空间或类型的别名。 当需要使用在一个或多个命名空间中声明的同名项目时,导入别名十分有用。 有关更多信息及示例,请参见对已声明元素的引用 (Visual Basic)中的“限定元素名称”。
不应使用与 aliasname 相同的名称在模块级别声明成员。 如果这样做,Visual Basic 编译器只对声明的成员使用 aliasname,而不再将其识别为导入别名。
虽然用于声明导入别名的语法与用于导入 XML 命名空间前缀的语法类似,但结果却不同。 导入别名可用作代码中的表达式,而 XML 命名空间前缀只能在 XML 文本或 XML 轴属性中用作限定元素或特性名称的前缀。
元素名称
如果提供 element,它必须表示“容器元素”,即可包含其他元素的编程元素。 容器元素包括类、结构、模块、接口和枚举。
Imports 语句所提供元素的范围取决于是否指定了 element。 如果仅指定了 namespace,则该命名空间中所有具有唯一名称的成员以及该命名空间内容器元素的成员无需限定即可使用。 如果既指定了 namespace 又指定了 element,则只有该元素的成员无需限定即可使用。
示例
下面的示例通过使用 DirectoryInfo 类返回 C:\ 目录下的所有文件夹。
文件顶部没有代码的 Imports 语句。 因此,DirectoryInfo、StringBuilder 和 CrLf 引用全部通过命名空间完全限定。
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
下面示例包含 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
下面的示例包含 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
下面的示例包含 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
请参见
参考
.NET Framework 类库
Namespace 语句
Imports 语句(XML 命名空间)
概念
Visual Basic 中的命名空间
引用和 Imports 语句 (Visual Basic)
其他资源
对已声明元素的引用 (Visual Basic)
修订记录
Date |
修订记录 |
原因 |
2011 年 3 月 |
添加了示例。 |
客户反馈 |
2011 年 3 月 |
向备注中添加了信息。 |
信息补充。 |
原文链接:https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/7f38zh8x(v=vs.100)