1. 程式人生 > >C# 使用外部別名

C# 使用外部別名

本文告訴大家如果遇到兩個不同的庫有相同的名稱空間,相同的類如何使用這兩個庫

在看過 C# 很少人知道的科技的小夥伴就知道,我告訴了大家一些關鍵字,都是很少人發現。

在上一篇文章說到 extern 關鍵字,只是很簡單告訴大家用來做區分兩個不同 dll 有相同的名稱空間和類,可以使用這個關鍵字。

在遇到了存在兩個 dll 都有相同的名稱空間,而且有相同的類的時候,如何同時使用這兩個 dll 的類。

這裡有兩個庫 JallzuZowsobouNaboro 和 BemzarGasfourouraCunimor 這兩個庫有相同的類 Foo 只是裡面的函式不相同。那麼如何才可以使用自己需要的 dll 的函式


//BemzarGasfourouraCunimor 庫

namespace lindexi
{
    public class Foo
    {
        public void MestatoRoureefirkiKoobere()
        {
            Console.WriteLine("歡迎訪問我部落格");
        }
    }
}
// JallzuZowsobouNaboro 庫

namespace lindexi
{
    public class Foo
    {
        public void TarlaGeremegar
() { Console.WriteLine("lindexi.github.io"); } } }

這時建立 PearveJalnouChearkachinearDocea 專案引用 BemzarGasfourouraCunimor 和 JallzuZowsobouNaboro 需要呼叫這兩個庫的方法

就需要使用 extern 來做

首先右擊引用的兩個庫的屬性,可以看到引用的庫的別名是 global 這也就是使用 global:: 可以指定對應的類的原因

現在需要修改別名為新的,而且不同的字元,這裡我把 JallzuZowsobouNaboro 修改為 A ,把 BemzarGasfourouraCunimor 修改為 B ,現在開啟 PearveJalnouChearkachinearDocea 的原始碼,在呼叫 JallzuZowsobouNaboro 的庫可以使用extern alias A

來引用

extern alias A;
extern alias B;

namespace PearveJalnouChearkachinearDocea
{
    class Program
    {
        static void Main(string[] args)
        {
            new B::lindexi.Foo().MestatoRoureefirkiKoobere();
            new A::lindexi.Foo().TarlaGeremegar();
        }
    }
}

現在執行可以輸出

使用 外部別名 的關鍵是右擊引用的屬性,修改別名,把他修改為一個新的字元。

在使用的時候在所有的程式碼的最前,也就是 using的前面使用 extern alias 別名;

然後使用對應的類就可以使用 別名::名稱空間.類 ,當然可以使用 using 簡化,在安裝了 Resharper 就會告訴你如何使用using,這裡我就不告訴大家。

在網上也有告訴大家如何使用命令列的方法設定別名

/r:別名1=A.dll
/r:別名2=B.dll

我搭建了自己的部落格 https://lindexi.gitee.io/ 歡迎大家訪問,裡面有很多新的部落格。只有在我看到部落格寫成熟之後才會放在csdn或部落格園,但是一旦釋出了就不再更新

如果在部落格看到有任何不懂的,歡迎交流,我搭建了 dotnet 職業技術學院 歡迎大家加入