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 職業技術學院 歡迎大家加入