How to handle same class name in different namespaces?
我正在嘗試創建一個通用的庫結構。 我通過為我想要的每個公共庫創建單獨的項目來做到這一點
我有以下2個命名空間:MyCompany.ERP和MyCompany.Barcode
我需要他們兩個都有一個名為" Utilities"的類並且是靜態的。 如果這樣做,我將需要在我的靜態類之前指定完整的名稱空間名稱,以便對其進行訪問。
還有其他首選的方式嗎?
或者我應該在BarcodeUtils和ERPUtils等類中使用不同的名稱?
If i do that i will then need to specify the full namespace name before my static class in order to access it?
不,雖然細節取決於將使用這些類型的類及其具有的using聲明,但不需要這樣做。
如果僅使用類中的名稱空間之一,則不會有歧義,您可以繼續使用該類型。
如果同時使用兩個名稱空間,則要么必須完全限定使用范圍,要么使用名稱空間/類型別名來消除類型的歧義。
1
2 3 4 5 6 7 8 |
using ERPUtils = MyCompany.ERP.Utilities; using BCUtils = MyCompany.Barcode.Utilities; public void MyMethod() { var a = ERPUtils.Method(); var b = BCUtils.Method(); } |
沒有其他辦法了。您可以在using指令中創建別名:
1
2 3 4 5 6 7 8 |
using MC=MyCompany.ERP; using MB=MyCompany.Barcode; ... public void Test() { var a = MC.Utilities.Method(); var b = MB.Utilities.Method(); } |
這是管理它們的最簡單方法。