C# 关于namespace的细节

来源:互联网 发布:国外便宜域名 编辑:程序博客网 时间:2024/06/08 17:48
<1>namespace的层次结构优先于namespace的别名
如果出现这种别名和已有的namespace重名的情况,要想试用别名可以使用"::"这样就限制了调用的是别名命名空间。
using MyNamespace = ConsoleApplication19Namespace.MyNamespace2;namespace ConsoleApplication19Namespace{    class Program    {        static void Main(string[] args)        {            MyNamespace.Myclass My = new MyNamespace.Myclass();            My.print();            MyNamespace::Myclass You = new MyNamespace::Myclass();            You.print();        }    }    namespace MyNamespace    {        class Myclass        {            public void print()            {                Console.WriteLine("This is in the ConsoleApplication.MyNamespace.Myclass");            }        }    }    namespace MyNamespace2    {        class Myclass        {            public void print()            {                Console.WriteLine("This is in the ConsoleApplication.MyNamespace2.Myclass");            }        }    }}


output:
This is in the ConsoleApplication.MyNamespace.Myclass
This is in the ConsoleApplication.MyNamespace2.Myclass


<2>全局命名空间
global和“::”一起使用 globale::表示的顶级根namespace的别名,通过顶级根namespace的调用可以防止外部变量或者外部类被内部变量,内部类隐藏的出现。
例如:
global::System.Console.WriteLine("what a fuck day");//这样就不会出现问题。


0 0
原创粉丝点击