将枚举转换为int

Pau*_*els 5 c# enums casting

我有以下枚举

public enum TESTENUM
{
    Value1 = 1,
    Value2 = 2
}
Run Code Online (Sandbox Code Playgroud)

然后我想用它来比较我有的整数变量,如下所示:

if ( myValue == TESTENUM.Value1 )
{
}
Run Code Online (Sandbox Code Playgroud)

但是为了做这个测试,我必须按如下方式强制转换枚举(或者可能将整数声明为类型枚举):

if ( myValue == (int) TESTENUM.Value1 )
{
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以告诉编译器枚举是一系列整数,这样我就不必执行此操作或重新定义变量?

cod*_*zen 12

不需要.您需要转换枚举值.如果您不想强制转换,请考虑使用具有常量int值的类:

class static EnumLikeClass
{
    public const int Value1 = 1;
    public const int Value2 = 2;
}
Run Code Online (Sandbox Code Playgroud)

但是,这有一些缺点; 缺乏类型安全是使用该类型的一个重要原因enum.

  • 谢谢你的downvote.只是觉得今天失去积分,或者你有什么特别的理由这样做,你想分享? (4认同)