簡體   English   中英

在C#中使用兩個具有相同名稱的靜態類

[英]Using two static classes having same name in C#

我有一個包含在C#項目中的DLL。 我們將其稱為“ one.dll”。此DLL包含一個名為“ staticclass”的靜態類。

我有另一個也包含在同一項目中的DLL。 我們稱之為“ two.dll”。此DLL也包含一個名為“ staticclass”的靜態類。

現在,當我在項目中同時包含兩個DLL並嘗試訪問“ staticclass”時,自然會出現錯誤。 有沒有一種方法可以更改類的名稱或給它提供某種別名,所以可以說“ one.dll”中的“ staticclass”將保持不變,並且我可以給“ static.Two”中的別名“ alias” .dll”

請注意,我無法同時訪問“ one.dll”和“ two.dll”的源編解碼器

(我假設這兩個類也位於同一個命名空間中。如果不是,那很容易-只需對別名using完全使用using指令,或在代碼中使用完全限定的名稱。)

您確實可以提供別名-extern別名 實際上,這將“程序集”添加為名稱空間區分的另一個級別。

顯然,您應該盡可能避免這種情況,但是C#提供了一種在絕對必要時非常明確的方式,這很不錯。

安森·霍頓(Anson Horton) 很好地介紹了如何在實踐中使用它們。

您只需使用Alias即可做到。

在您的代碼中,在名稱空間行的下面; 使用如下別名

namespace ConsoleApp
{

    using ClassOne = Assembly.One.MyClass; /* your dll 1 class */
    using ClassTwo = Assembly.Two.MyClass; /* your dll 2 class */

    class Program
    {

        static void Main(string[] args)
        {

            ClassOne one = new ClassOne();
            // Do your stuff with ClassOne object

            ClassTwo two = new ClassTwo();
            // Do your stuff with ClassTwo object

        }
    }
}

希望這可以幫助!

暫無
暫無

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

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