2013-10-30 9 views
6

変換の2つの方法の間で選択することはできません。intベストプラクティスへの列挙

1をintに列挙型から変換することにより、ベストプラクティスは何ですか:

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

2:

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

Golly私はあまりこの問題のバグ。 –

答えて

3

に拡張メソッドの形でミックスに第3の代替をスローします〜@ dtb

等号の後に指定すると、enumのint(またはflag)を指定できます。

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

乾杯

3

あなたは、このような

enum MyEnum 
{ 
    Foo, 
    Bar, 
    Baz, 
} 

と値として列挙型を使用している場合その列挙型のうち

MyEnum value = MyEnum.Foo; 

次いでintに値を変換するための最良の方法は

int result = (int)value; 
2

あるIはまた列挙

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

関連する問題