2009-06-10 14 views
3

私のenumをintとしてデフォルトにする方法はありますか?だから私はどこにでも型キャストする必要はありませんか? 基本的に私はそれをconst値のリストとして使用しています。C#enums as int

+0

Dupe? http://stackoverflow.com/questions/577946/can-i-avoid-casting-an-enum-value-when-i-try-to-use-or-return-it – Oskar

+1

Oskar。種類はありますが、私は型変換を避けようとしていません。私はconst intの余分な構文を入力して嫌いですが、[フラグ]は列挙型の動作を変更できるので、私は似たようなものを見つけることを望んでいました。 –

答えて

7

いいえ、列挙型を宣言した場合、そのデフォルト値は列挙型であり、int値に到達するには明示的なキャストが必要です。 enumをconst値として使用している場合は、const値を使用しないでください。分離が必要な場合は、これらのconst値だけを含む構造体を作成することができます。

8

あなたが本当に静的クラスを使用し、その後、int型の定数のグループが必要な場合:

public static class Constants { 
    public const int ConstantOne = 42; 
    public const int ConstantTwo = 42; 
    ... 
} 
1

あなたが本当にことをしたい場合は、以下のような拡張メソッドを作成することができます列挙型のため

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

は、その後、あなたは次

ようにそれを使用することができます