21.命名空间别名限定符::和global全局名称空间限定符

命名空间别名限定符(::)用于查找标识符,它在指定的别名的命名空间中查找运算符,如下代码是在全局名称空间中查找System.Console.WriteLine("Hello World");global是全局名称空间的别名。

global::System.Console.WriteLine("Hello World");

 

我们可以定义自己的名称空间别名,如下代码在我们指定的别名Col名称空间中查找List<int>。

// using Col=System.Collections.Generic;
var numbers = new Col::List<int> { 1, 2, 3 };

 

使用命名空间别名限定符的好处是可以让我们清楚的指定使用哪个名称空间中的对象。比如下面的代码我们定义了别名MyNameSpaceAlias,代码MyNameSpaceAlias.MyClass  myClass=new MyClass()使用的是MyRootNameSpace.MyNameSpaceAlias.Class1,如果要使用别名名称空间的Class1,就要使用命名空间别名限定符。

using MyNameSpaceAlias =MyRootNameSpace.MyNestedNameSpace;
namespace MyRootNameSpace
{
    namespace MyNameSpaceAlias
    {
        public class MyClass
        { 
        
        }

        public class Class1
        {
            MyNameSpaceAlias.MyClass  myClass=new MyClass();//MyRootNameSpace.MyNameSpaceAlias.Class1
            MyNameSpaceAlias::MyClass myClass =new MyNameSpaceAlias::MyClass();//MyNestedNameSpace.MyClass
        }
    }

    namespace MyNestedNameSpace
    {
        public class MyClass
        {

        }
    }
}

 

上一篇:c++中冒号(:)和双冒号(::)的用法


下一篇:Java类是如何默认继承Object的?