关键字global::添加引用时
本文关键字:引用 添加 关键字 global | 更新日期: 2023-09-27 18:04:05
我今天遇到了一个奇怪的现象,我将一个项目的引用添加到另一个项目,并试图使用引用的程序集的接口:
:
-
MySampleApplication
类在MyApplication
项目中 - 接口
IMySampleApplication
在参考项目MyApplication.Interfaces
中。
当我这样做时:
public class MySampleApplication : IMySampleApplication
Resharper使用
添加以下内容:using global::MyApplication.Interfaces;
问题:
为什么要添加
global::
前缀,我如何避免这种情况?
Thanks in advance
您将在代码的某个地方出现两次MyApplication
,例如您可能在本地项目中有一个名为MyApplication
的类以及MyApplication项目中的命名空间。
本地MyApplication
将优先于MyApplication项目中的名称空间,因此将找不到MyApplication.Interfaces
。为了解决这个问题,可以使用特殊的别名global::
来告诉编译器,在这种情况下MyApplication
引用的是一个基名称空间,这样MyApplication.Interfaces
就可以被正确识别。
至于如何避免它,说起来容易,但可能更难做到:重命名其中一个以消除名称冲突…
您的项目中可能有另一个名为MyApplication的实体隐藏了名称空间。
参见:"如何使用全局命名空间别名(c#编程指南)"