C#でenumからint型の値を取得する
Questions(複数形)というクラスがあります。このクラスには
Question`(単数形)というenumがあり、次のようになっています。
public enum Question
{
Role = 2,
ProjectFunding = 3,
TotalEmployee = 4,
NumberOfServers = 5,
TopBusinessConcern = 6
}
Questionsクラスの中には、
get(int foo)関数があり、この関数は
fooに対する
Questionsオブジェクトを返します。Questions.Get(Question.Role)
のようなことができるように、enumから整数値を取得する簡単な方法はありますか?
1680
3
enumをキャストするだけで、例えば次のようになります。
上記の方法は、自然界で目にする大半の列挙型で動作します。なぜなら、列挙型のデフォルトの基本型は
int
だからです。しかし、cecilphillipが指摘するように、列挙型は異なる基本型を持つことができます。 enum が
uint
,long
,ulong
として宣言されている場合は、enum の型にキャストする必要があります。の場合は
結果は
value == 2
となります。案外簡単です。enumはすでにint型です。 それを思い出すだけでいいのです。