关于C#:枚举到int最佳实践

Enum to int best practice

本问题已经有最佳答案,请猛点这里访问。

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

1:

1
2
3
4
public static int EnumToInt(Enum enumValue)
{
    return Convert.ToInt32(enumValue);
}

2:

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


除了@dtb

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

1
2
3
4
5
6
enum MyEnum
{
    Foo = 0,
    Bar = 100,
    Baz = 9999
}

干杯


如果您有一个枚举,例如

1
2
3
4
5
6
enum MyEnum
{
    Foo,
    Bar,
    Baz,
}

以及该枚举的值,例如

1
MyEnum value = MyEnum.Foo;

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

1
int result = (int)value;


我将以枚举上的扩展方法的形式向混合中抛出第三个选项。

1
2
3
4
5
6
7
8
9
10
11
12
13
public static int ToInt(this Enum e)
{
    return Convert.ToInt32(e);
}

enum SomeEnum
{
    Val1 = 1,
    Val2 = 2,
    Val3 = 3,
}

int intVal = SomeEnum.ToInt();