C#中的命名空间冲突

Ant*_*nov 39 c# namespaces

System程序命名空间中有一个命名空间.结果我无法System从我的内部看到标准命名空间.我该如何解决这个问题?

在此输入图像描述

例如,在C++中,有一个::运算符将我"移出"我的命名空间,因此我可以看到与我当前命名空间同名的外部命名空间:

在此输入图像描述

C#中是否有类似的运算符?

Mat*_*eer 84

您需要使用global关键字.这迫使命名空间解析从最顶层开始.它主要用于生成的代码,以确保引用正确的命名空间.

 global::System.Foo.Bar;
Run Code Online (Sandbox Code Playgroud)

一些关于它的MSDN文档:http://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx

  • 顺便说一句,最好避免使用`System`作为命名空间的名称. (4认同)
  • 不幸的是,一些代码生成器不添加"global ::"关键字.:-(像WPF使用的那样. (4认同)

Ry-*_*Ry- 15

为了更方便,您也可以给它一个别名:

using GSystem = global::System;
Run Code Online (Sandbox Code Playgroud)

将允许您将全局System命名空间称为GSystem或者您想要调用它的任何其他命名空间.