繁体   English   中英

将ENUM(CustomType)传递到另一个ENUM不存在的类

[英]pass ENUM(CustomType) to Another Class, where that ENUM doesn't exist

//问题更新

假设,对于我的新项目,我创建一个文件,其中有:

namespace A{
    public enum MyDates{
       19a,
       19b,
       19c,
       .....
    }

    ....

    public class  MyABC : Transaction{

        ....
        string smth = MyFunc(MyDates.19a);
        ....
    }
}

我有自定义的库文件(可以说是相同或不同的名称空间),我也将其包含在每个项目中,并根据需要用新方法填充它。 现在,我想在那里添加另一个方法,该方法仅在需要传递MyDates类型时才可以调用:

namespace A{

    partial class Transaction{
      ......

      public string MyFunc(MyDates smth){ 
            return (smth == MyDates.19a ? 'Hi' : (smth == MyDates.19b ? ( etc... ) ) )  ; 
      }

      ......
    }
}

但是,名称空间B将不会编译(因为MyDates不存在)。 在没有那个ENUM的情况下,我永远不会调用该方法,为什么它仍然需要我再次在其命名空间中定义该枚举? MyDates是动态的,可以更改(删除了一些值),我不想每次都修改我的库。

MyDates是动态的,可以更改(删除了一些值),我不想每次都修改我的库。

enum实现此目的的唯一方法是使消耗代码通过反射( Enum.GetNames() / Enum.GetValues() )访问enum ,而不依赖于编译时存在的值。 可以这样做,但是建议enum不是此数据的最佳选择,尤其是在删除项目时。 从本质上讲,删除成员可能会破坏消费者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM