簡體   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