using 别名指令用于为一个命名空间或类型指定一个别名(即标识符),该别名在直接包含此指令的编译单元或命名空间体内有效。 using-alias-directive:(using 别名指令:) 
using   identifier   =   namespace-or-type-name   ;(using   标识符   =   命名空间或类型名称   ;) 
在包含 using 别名指令的编译单元或命名空间体内的成员声明中,由 using 别名指令引入的标识符可用于引用给定的命名空间或类型。例如:namespace N1.N2
{
   class A {}
}
namespace N3
{
   using A = N1.N2.A;
   class B: A {}
}
上面的示例中,在 N3 命名空间中声明成员时,A 是 N1.N2.A 的别名,因此类 N3.B 从类 N1.N2.A 派生。通过为 N1.N2 创建别名 R 然后引用 R.A 可以得到同样的效果:namespace N3
{
   using R = N1.N2;
   class B: R.A {}
}
using 别名指令中的标识符在直接包含该 using 别名指令的编译单元或命名空间的声明空间内必须是唯一的。例如:namespace N3
{
   class A {}
}
namespace N3
{
   using A = N1.N2.A;      // Error, A already exists
}
上例中,N3 已包含了成员 A,因此 using 别名指令使用 A 作标识符会导致一个编译时错误。同样,如果同一个编译单元或命名空间体中的两个或更多 using 别名指令用相同名称声明别名,也会导致一个编译时错误。using 别名指令使别名可用在特定编译单元或命名空间体内,但是它不会将任何新成员添加到相应的声明空间。换句话说,using 别名指令是不可传递的,它指定的别名仅在它所在的编译单元或命名空间体内有效。在下面的示例中namespace N3
{
   using R = N1.N2;
}
namespace N3
{
   class B: R.A {}         // Error, R unknown
}
引入 R 的 using 别名指令的范围只延伸到包含它的命名空间体中的成员声明,因此 R 在第二个命名空间声明中是未知的。但是,如果将 using 别名指令放置在包含它的编译单元中,则该别名在两个命名空间声明中都可用:using R = N1.N2;
namespace N3
{
   class B: R.A {}
}
namespace N3
{
   class C: R.A {}
}
和常规成员一样,using 别名指令引入的别名在嵌套范围中也可被具有相似名称的成员所隐藏。在下面的示例中using R = N1.N2;
namespace N3
{
   class R {}
   class B: R.A {}      // Error, R has no member A
}
B 的声明中对 R.A 的引用将导致编译时错误,原因是这里的 R 所引用的是 N3.R 而不是 N1.N2。编写 using 别名指令的顺序并不重要,对在 using 别名指令引用的命名空间或类型名称的解析过程既不受 using 别名指令本身影响,也不受直接包含着该指令的编译单元或命名空间体中的其他 using 指令影响。换句话说,对 using 别名指令的命名空间或类型名称的解析,就如同在直接包含该指定的编译单元或命名空间体中根本没有 using 指令一样来处理。在下面的示例中namespace N1.N2 {}
namespace N3
{
   using R1 = N1;         // OK
   using R2 = N1.N2;      // OK
   using R3 = R1.N2;      // Error, R1 unknown
}
最后一个 using 别名指令导致编译时错误,原因是它不受第一个 using 别名指令的影响。using 别名指令可以为任何命名空间或类型创建别名,包括它在其中出现的命名空间本身,以及嵌套在该命名空间中的其他任何命名空间或类型。对一个命名空间或类型进行访问时,无论用它的别名,还是用它的所声明的名称,结果是完全相同的。例如,给定namespace N1.N2
{
   class A {}
}
namespace N3
{
   using R1 = N1;
   using R2 = N1.N2;
   class B
   {
      N1.N2.A a;         // refers to N1.N2.A
      R1.N2.A b;         // refers to N1.N2.A
      R2.A c;            // refers to N1.N2.A
   }
}
名称 N1.N2.A、R1.N2.A 和 R2.A 是等效的,它们都引用完全限定名为 N1.N2.A 的类