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(); } |
这是管理它们的最简单方法。