13

我无法在两种转换方法之间进行选择。从 enum 转换为 int 的最佳实践是什么

1:

public static int EnumToInt(Enum enumValue)
{
    return Convert.ToInt32(enumValue);
}

2:

public static int EnumToInt(Enum enumValue)
{
    return (int)(ValueType)enumValue;
}
4

3 回答 3

5

除了@dtb

您可以通过在等号之后提供它来指定枚举的 int(或标志)。

enum MyEnum
{
    Foo = 0,
    Bar = 100,
    Baz = 9999
}

干杯

于 2013-10-30T05:36:23.957 回答
4

如果您有一个枚举,例如

enum MyEnum
{
    Foo,
    Bar,
    Baz,
}

以及该枚举的值,例如

MyEnum value = MyEnum.Foo;

那么将值转换为 an 的最佳方法int

int result = (int)value;
于 2013-10-30T05:33:15.887 回答
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();
于 2013-10-30T05:33:58.787 回答