关键字global ::添加引用时

xer*_*him 2 .net c# resharper reference

我今天遇到了一个奇怪的现象,因为我将一个项目的引用添加到另一个项目并尝试使用引用的程序集的接口:

情况:

  • 该课程MySampleApplication在该项目中MyApplication.
  • 接口IMySampleApplication位于引用的项目中MyApplication.Interfaces.

当我这样做:

public class MySampleApplication : IMySampleApplication
Run Code Online (Sandbox Code Playgroud)

Resharper使用以下内容添加以下内容:

using global::MyApplication.Interfaces;
Run Code Online (Sandbox Code Playgroud)

题:

为什么要添加global::前缀,我该如何避免这种情况?

提前致谢

Dav*_*rno 7

MyApplication的代码中会出现两次出现的情况,例如,您可能会MyApplication在本地项目中调用一个类以及MyApplication项目中的名称空间.

本地MyApplication将优先于MyApplication项目中的命名空间,因此MyApplication.Interfaces将无法找到.为了解决这个问题,global::可以使用特殊别名告诉编译器在这种情况下MyApplication引用基本命名空间,MyApplication.Interfaces然后可以正确识别.

至于如何避免它,这很容易说,但它可能更难实现:重命名其中一个以删除名称冲突...