C#阻止枚举进行int转换

Jay*_*mon 1 c# enums

我有一个枚举枚举从外部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)