更新:2007 年 11 月
using 指令有两个用途:
允许在命名空间中使用类型,这样,您就不必在该命名空间中限定某个类型的使用:
复制代码 using System.Text;
为命名空间或类型创建别名。这称为“using 别名指令”。
复制代码 using Project = PC.MyCompany.Project;
using 关键字还用来创建 using 语句,此类语句有助于确保正确处理
备注
using 指令的范围限制为包含它的文件。
创建 using 别名,以便更易于将标识符限定到命名空间或类型。using 别名指令的右侧必须始终是一个完全限定类型,而与前面的 using 指令无关。
创建 using 指令,以便在命名空间中使用类型而不必指定命名空间。using 指令不为您提供对嵌套在指定命名空间中的任何命名空间的访问。
命名空间分为两类:用户定义的命名空间和系统定义的命名空间。用户定义的命名空间是在代码中定义的命名空间。若要查看系统定义的命名空间的列表,请参见
有关引用其他程序集中的方法的示例,请参见
示例 1
说明
下面的示例显示了如何为命名空间定义和使用 using 别名:
代码
C# | 复制代码 |
---|---|
namespace PC { // Define an alias for the nested namespace. using Project = PC.MyCompany.Project; class A { void M() { // Use the alias Project.MyClass mc = new Project.MyClass(); } } namespace MyCompany { namespace Project { public class MyClass { } } } } |
注释
using 别名指令的右侧不能有开放式泛型类型。例如,不能为 List<T> 创建 using 别名,但可以为 List<int> 创建。
示例 2
说明
下面的示例显示了如何为类定义 using 指令和 using 别名:
代码
C# | 复制代码 |
---|---|
using System; // Using alias for a class. using AliasToMyClass = NameSpace1.MyClass; namespace NameSpace1 { public class MyClass { public override string ToString() { return "You are in NameSpace1.MyClass"; } } } namespace NameSpace2 { class MyClass { } } namespace NameSpace3 { // Using directive: using NameSpace1; // Using directive: using NameSpace2; class MainClass { static void Main() { AliasToMyClass somevar = new AliasToMyClass(); Console.WriteLine(somevar); } } } // Output: You are in NameSpace1.MyClass |
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各节:
9.3 Using 指令