关键字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

关键字global::添加引用时

您将在代码的某个地方出现两次MyApplication,例如您可能在本地项目中有一个名为MyApplication的类以及MyApplication项目中的命名空间。

本地MyApplication将优先于MyApplication项目中的名称空间,因此将找不到MyApplication.Interfaces。为了解决这个问题,可以使用特殊的别名global::来告诉编译器,在这种情况下MyApplication引用的是一个基名称空间,这样MyApplication.Interfaces就可以被正确识别。

至于如何避免它,说起来容易,但可能更难做到:重命名其中一个以消除名称冲突…

您的项目中可能有另一个名为MyApplication的实体隐藏了名称空间。

参见:"如何使用全局命名空间别名(c#编程指南)"