namespace 关键字用于声明一个范围。此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法:
MyCompany
示例:(略)
using 关键字有两个主要用途:
示例:
注意:
有时可能有必要引用具有相同完全限定类型名的程序集的两个版本,例如当需要在同一应用程序中使用程序集的两个或更多的版本时。通过使用外部程序集别名,来自每个程序集的命名空间可以在由别名命名的根级别命名空间内包装,从而可在同一文件中使用。
/r:N1=a1.dll
/r:N2=a2.dll
N1
N2
extern alias N1;
extern alias N2;
每一个外部别名声明都引入一个额外的根级别命名空间,它与全局命名空间平行,而不是在全局命名空间内。因此,来自每个程序集的类型就可以通过各自的、根源于适当的名空间别名的完全限定名来引用,而不会产生多义性。
比如有程序集a1.dll:
// Assembly a1.dll:namespace N{ public class A {} public class B {}}
再引用程序集a2.dll:
Assembly a2.dll:namespace N{ public class B {} public class C {}}
那么以下的程序就会出错:
class Test{ N.A a; // Ok N.B b; // Error N.C c; // Ok}
然后使用导入外部别名的方法就可以解决这个问题:
// 先在命令行执行csc /r:X=a1.dll /r:Y=a2.dll test.cs// 导入外部别名extern alias X;extern alias Y;class Test{ // 使用::从别名中使用真实的命名空间 X::N.A a; X::N.B b1; Y::N.B b2; Y::N.C c;}
本篇内容参考MSDN文档。
本Blog中所有内容皆以“现状”提供且没有任何担保,同时也没有授予任何权利。This posting is provided "AS IS" with no warranties, and confers no rights.
昵称: [登录] [注册]
主页:
邮箱:(仅博主可见)
验证码: 看不清,换一个
评论内容:
登录 注册
[使用Ctrl+Enter键快速提交评论]