Imports 语句(.NET 命名空间和类型)
更新:2007 年 11 月
导入在当前项目或引用的项目和程序集中定义的命名空间或编程元素。
Imports [ aliasname = ] namespace
-or-
Imports [ aliasname = ] namespace.element
各部分说明
aliasname
可选。“导入别名”或名称,代码可按该名称而不是完全限定字符串来引用 namespace。 请参见 已声明元素的名称。namespace
必需。所导入命名空间的完全限制名称。可以为嵌套到任意级别的命名空间的字符串。element
可选。命名空间中所声明编程元素的名称。可以为任何容器元素。
备注
每个源文件可以包含任意数量的 Imports 语句。这些语句必须位于任何选项声明(如 Option Strict 语句)之后、任何编程元素声明(如 Module 或 Class 语句)之前。
只能在文件级别使用 Imports。这意味着导入的声明上下文必须是源文件,而不能是命名空间、类、结构、模块、接口、过程或块。
当需要使用在一个或多个命名空间中声明的同名项目时,导入别名十分有用。有关更多信息及示例,请参见 有多个同名变量时解析引用 中的“同名类”。
请注意,Imports 语句不会将其他项目和程序集中的元素提供给您的项目使用。导入不会取代对引用的设置,它只是使那些已经可用于项目的名称不再需要加以限定。有关更多信息,请参见 有多个同名变量时解析引用 中的“导入包含元素”。
说明: |
---|
虽然用于声明导入别名的语法与用于导入 XML 命名空间前缀的语法类似,但结果却不同。导入别名可用作代码中的表达式,而 XML 命名空间前缀只能在 XML 文本或 XML 轴属性 (property) 中用作限定元素或属性 (attribute) 名称的前缀。 |
规则
**别名。**不应使用与 aliasname 相同的名称在模块级别声明成员。如果这样做,Visual Basic 编译器只对声明的成员使用 aliasname,而不再将其识别为导入别名。
**命名空间名称。**可以提供单个命名空间名称,也可以提供嵌套命名空间的字符串。每个嵌套命名空间都通过句点 (.) 与下一个更高级别的命名空间分隔,如下面的示例中所述。
Imports System.Collections.Generic
**元素类型。**如果提供 element,它必须表示“容器元素”,即可包含其他元素的编程元素。 容器元素包括类、结构、模块、接口和枚举。
行为
**范围。**Imports 语句所提供元素的范围取决于是否指定了 element。如果仅指定了 namespace,则该命名空间中所有具有唯一名称的成员以及该命名空间内容器元素的成员无需限定即可使用。如果既指定了 namespace 又指定了 element,则只有该元素的成员无需限定即可使用。
**限定。**命名空间或容器元素外部的代码通常必须使用该命名空间或容器元素的名称来限定成员的名称。除非您的项目要访问具有相同名称的另一个成员,否则使用 Imports 语句后将不必进行此类限定。在这种情况下,您可以在每个 Imports 语句中指定一个 aliasname。然后,您只需导入别名即可限定具有相同名称的成员。
示例
下面的示例将导入 Microsoft.VisualBasic.Strings 类并给其分配一个别名 str,该别名可用于访问 Left 方法。
' Place Imports statements at the top of your program.
Imports str = Microsoft.VisualBasic.Strings
Class testClass1
Sub showHello()
' Display only the word "Hello"
MsgBox(str.Left("Hello World", 5))
End Sub
End Class
请注意,前面的示例导入一个嵌套命名空间,即 Microsoft 内 VisualBasic 中的 Strings。MsgBox 函数 (Visual Basic) 在访问 Left 方法,可以使用别名 str 而不是整个限定字符串 Microsoft.VisualBasic.Strings。
请参见
概念
介绍 Visual Studio 中的 .NET Framework 类库