簡體   English   中英

命名空間和類具有相同的名稱

[英]Namespace and class have the same name

我繼承了一個大型C#項目。 其中一個類具有共享相同名稱的名稱空間和類。 結果,當創建類的實例時,我必須這樣做:

using xxx.existingName
IinterfaceName dog = new existingName.existingName();

由於現有的類具有接口,因此我可以避免在=的左側具有existingName.existingName 使用var dog也可以做到這一點。 但是我也想避免在右側使用existingName.existingName Name.existingName,因為它的可讀性較差。

有什么方法可以執行此操作而無需重命名現有代碼?

您可以使用別名使其更具可讀性(好吧,不要使用這些名稱):

using AliasForName = existingName;

...

IinterfaceName dog = new AliasForName.existingName();

如果原始作者查看了此MSDN文章 ,那么他將首先使用其他名稱:

X請勿對名稱空間和該名稱空間中的類型使用相同的名稱 例如,請勿將Debug用作名稱空間名稱,然后在同一名稱空間中提供一個名為Debug的類。 一些編譯器要求此類類型是完全合格的。

順便說一句,您應該真正應用大寫約定

您可以通過using指令重命名類或名稱空間:

using ClassAlias = Test.Test;
using NamespaceAlias = Test;

public class Program
{
    public static void Main()
    {
        ClassAlias a = new ClassAlias();
        NamespaceAlias.Test t = new NamespaceAlias.Test();
    }
}

namespace Test{
    public class Test{}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM