枚举到最佳实践

时间:2013-10-30 05:30:32

标签: c# enums

我不能在两种转换方法之间进行选择。从枚举转换为int

的最佳做法是什么?

1:

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

2:

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

3 个答案:

答案 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();