我有一个枚举枚举从外部API返回的整数值,以便在我的代码中使用.但是我不一定知道编译时的整数值,所以我有一些代码在程序启动时挂起它们并将它们存储在Dictionary中.
我已经定义了一些转换为/从整数代码转换的扩展方法,但这些整数代码与从转换为int返回的代码不同.如果另一个程序员用我的枚举进行编程,我担心他们会尝试从习惯中抛出整数.程序只会默默地接受错误的代码.
有没有办法阻止我的枚举显式转换为/从int?如果没有,有没有办法导致异常被抛出,如果有人尝试?或者连接我自己的转换函数?或者在运行时更改枚举的基础值?
Mat*_*ias 10
你在尝试的是非常"脏".
使用具有只读值而不是枚举值的静态类.然后,您可以初始化类型初始值设定项中的值(或通过静态方法):
public static class Foos
{
public static readonly int First;
public static readonly int Second;
//...
static Foos()
{
//For Example:
First = DateTime.Now.Day;
First = DateTime.Now.Month;
}
}
Run Code Online (Sandbox Code Playgroud)