zoukankan      html  css  js  c++  java
  • 关于c#:如何在不同的命名空间中处理相同的类名?

    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();
    }

    这是管理它们的最简单方法。

  • 相关阅读:
    BZOJ3779: 重组病毒
    BZOJ3112 [ZJOI2013]防守战线
    BZOJ4011 [HNOI2015]落忆枫音
    BZOJ2726 [SDOI2012]任务安排
    BZOJ1492 [NOI2007]货币兑换
    BZOJ1597 [USACO2008]土地购买
    BZOJ3611 [HEOI2014]大工程
    BZOJ3991 [SDOI2015]寻宝游戏
    BZOJ3675 [APIO2014]序列分割
    BZOJ1010 [HNOI2008]玩具装箱
  • 原文地址:https://www.cnblogs.com/bruce1992/p/15085913.html
Copyright © 2011-2022 走看看