using 指令(C# 参考)

using 指令有两个用途:

  • 允许在命名空间中使用类型,这样,您就不必在该命名空间中限定某个类型的使用:

    using System.Text;
    
  • 为命名空间或类型创建别名。 这称为“using 别名指令”。

    using Project = PC.MyCompany.Project;
    

using 关键字还用来创建 using 语句,此类语句有助于确保正确处理 IDisposable 对象(如文件和字体)。 有关更多信息,请参见 using 语句

备注

using 指令的范围限制为包含它的文件。

创建 using 别名,以便更易于将标识符限定到命名空间或类型。 using 别名指令的右侧必须始终是一个完全限定类型,而与前面的 using 指令无关。

创建 using 指令,以便在命名空间中使用类型而不必指定命名空间。 using 指令不为您提供对嵌套在指定命名空间中的任何命名空间的访问。

命名空间分为两类:用户定义的命名空间和系统定义的命名空间。 用户定义的命名空间是在代码中定义的命名空间。 有关系统定义的命名空间的列表,请参见 .NET Framework Class Library

有关引用其他程序集中的方法的示例,请参见创建和使用 C# DLL

示例 1

说明

下面的示例显示了如何为命名空间定义和使用 using 别名:

代码

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 别名:

代码

using System;

// Using alias directive for a class. 
using AliasToMyClass = NameSpace1.MyClass;

// Using alias directive for a generic class. 
using UsingAlias = NameSpace2.MyClass<int>;

namespace NameSpace1
{
    public class MyClass
    {
        public override string ToString()
        {
            return "You are in NameSpace1.MyClass.";
        }
    }

}

namespace NameSpace2
{
    class MyClass<T>
    {
        public override string ToString()
        {
            return "You are in NameSpace2.MyClass.";
        }
    }
}

namespace NameSpace3
{
    // Using directive: 
    using NameSpace1;
    // Using directive: 
    using NameSpace2;

    class MainClass
    {
        static void Main()
        {
            AliasToMyClass instance1 = new AliasToMyClass();
            Console.WriteLine(instance1);

            UsingAlias instance2 = new UsingAlias();
            Console.WriteLine(instance2);

        }
    }
}
// Output:  
//    You are in NameSpace1.MyClass. 
//    You are in NameSpace2.MyClass.

C# 语言规范

有关详细信息,请参阅 C# 语言规范。该语言规范是 C# 语法和用法的权威资料。

请参见

参考

C# 关键字

命名空间关键字(C# 参考)

命名空间(C# 编程指南)

using 语句(C# 参考)

概念

C# 编程指南

其他资源

C# 参考