繁体   English   中英

如何选择具有相同名称的两个名称空间之一

[英]How to select one of two namespaces with the same name

我有一个名为Shared的项目和另一个名为Foo1的项目的解决方案

Foo1中,我创建了一个名为Shared的文件夹,因此我在解决方案中有两个名为Shared的名称空间。

我在项目Foo1中添加了项目Shared引用

但是现在当我在Foo1中 使用文件键入时, IntelliSense不显示共享命名空间。

如何在文件中指定我要在Foo1中使用Shared项目中的Shared命名空间?

注意:我想使用Share命名空间的文件位于项目的根目录中(我的意思是在Shared文件夹之外)

给出以下解决方案结构:

解决方法1

---共享(项目)

--- Foo1(项目

--- ===共享(命名空间/目录)

我的理解是你想从Foo1根目录中的文件中引用Foo1.Shared命名空间中的某些东西,可能是在Foo1命名空间中。

如果这一切都正确,您可以使用别名显式引用两个Shared命名空间中的每一个,如下所示:

using SolutionWideShared = Shared;
using Foo1Shared = Foo1.Shared;

您现在可以使用别名引用任一命名空间中的任何类,如下所示:

var blah = new SolutionWideShared.SomeClassInTheSharedProject();

要么

var bling = new Foo1Shared.SomeClassInFoo1ProjectInSharedNamespace();

这只是一个解决方案,但我是显式代码的粉丝,这将使一些非常易读,非混乱的代码。

理想情况下,您应该重新考虑您的命名,并尝试更具描述性。 什么是“共享”? 它和Foo.Shared有什么不同? 在生产质量代码中,这将要求重构和重命名,IMO。 如果这只是一个虚拟游戏项目,您正在使用它来证明某些点或使用某些代码 - 然后使用别名。

using FooShared = Foo.Shared;

因此,您将拥有Shared ,这是您的初始共享项目,以及FooShared

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM