global::用法问答

来源:互联网 发布:飞凡网络线路 编辑:程序博客网 时间:2024/05/02 04:58

 Questions:

              global::System.Console.WriteLine(number);
              冒号在什么地方用.
              点是空间下类,表示下一层的意思?

 

Answer:

1.命名空间标识符
它代表当前程序集命名空间的最顶层
举个例子:
如果我们自己的代码里写了一个Console类
public class Console{}
那当我们调用Console.WriteLine()的时候就出问题了
按照平常的处理方法会用System.Console.WriteLine()对吧
可是如果我们自己另外还定义了一个System类呢
public class System{}
那这样的话System.Console.WriteLine()也不行了……
所以为了解决这种情况可以使用global::System.Console.WriteLine();
global后面的实际上就是从最顶层开始向下的命名空间路径
这样可以精确地定位需要访问的类

 

2.这里面::前面是GAC的标示符global,用法比较特殊,和.不是一个类型的东西。

global 是 C# 2.0 中新增的关键字,理论上说,如果代码写得好的话,根本不需要用到它。

假设你现在写了一个类,名字叫 System。那么当你再在代码里写 System 的时候,编译器就不知道你是要指你写的 System 类还是系统的 System 命名空间,而 System 命名空间已经是根命名空间了,无法再通过完全限名来指定。在以前的 C# 版本中,这就是一个无法解决的问题。现在,可以通过

global::System

来表示 System 根命名空间,而用你自己的

MyNamespace.System

来表示自己的类

原创粉丝点击