<1>namespace的层次结构优先于namespace的别名
如果出现这种别名和已有的namespace重名的情况,要想试用别名可以使用"::"这样就限制了调用的是别名命名空间。
output:
This is in the ConsoleApplication.MyNamespace.Myclass
This is in the ConsoleApplication.MyNamespace2.Myclass
<2>全局命名空间
global和“::”一起使用 globale::表示的顶级根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");//这样就不会出现问题。