2013-10-30 46 views
6

我无法选择两种转换方法。什么是由枚举转换的最佳实践为intEnum to int最佳实践

1:

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

2:

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

天哪这个​​问题困扰我这么多。 –

回答

3

另外到@dtb

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

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

干杯

3

如果你有一个枚举如

enum MyEnum 
{ 
    Foo, 
    Bar, 
    Baz, 
} 

和值例如

MyEnum value = MyEnum.Foo; 

然后将值转换为int最好的办法就是

int result = (int)value; 
2

我就把第三种选择到组合中的扩展方法的形式枚举

public static int ToInt(this Enum e) 
{ 
    return Convert.ToInt32(e); 
} 

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

int intVal = SomeEnum.ToInt(); 
+0

我在哪里无法将类型'System.Enum'转换为int – zrabzdn

+0

请使用我的最新更新 – TGH

+1

TGH,谢谢! – zrabzdn