您的位置:首页 > 编程语言 > C#

C# 关于namespace的细节

2014-03-28 18:45 351 查看
<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");//这样就不会出现问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# namespace