2013-10-30 44 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