[英]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.