我不能在两种转换方法之间进行选择。从枚举转换为int
的最佳做法是什么?1:
public static int EnumToInt(Enum enumValue)
{
return Convert.ToInt32(enumValue);
}
2:
public static int EnumToInt(Enum enumValue)
{
return (int)(ValueType)enumValue;
}
答案 0 :(得分:5)
除了@dtb
您可以通过在等号后面提供枚举来指定枚举的int(或标志)。
enum MyEnum
{
Foo = 0,
Bar = 100,
Baz = 9999
}
干杯
答案 1 :(得分:4)
如果你有一个像
这样的枚举enum MyEnum
{
Foo,
Bar,
Baz,
}
和该枚举的值,例如
MyEnum value = MyEnum.Foo;
然后将值转换为int
的最佳方法是
int result = (int)value;
答案 2 :(得分:2)
我会在Enum
上以扩展方法的形式向混合中添加第三种替代方法public static int ToInt(this Enum e)
{
return Convert.ToInt32(e);
}
enum SomeEnum
{
Val1 = 1,
Val2 = 2,
Val3 = 3,
}
int intVal = SomeEnum.ToInt();