私は現在、次のように定義された列挙型を持っています:
public enum ColorEnum { Red, White, Blue, Green };
これらの列挙値のそれぞれには、ユーザーに返すことができるようにする必要がある基になるint値があります。そのために、列挙型を取り込んでintを返す関数を作成しました。
public int colorToValue(ColorEnum color)
{
switch (color)
{
case Red:
return 5;
case White:
return 10;
case Blue:
return 15;
case Green:
return 20;
}
return 0;
}
これはうまく機能しますが、列挙型自体を使用して基になる値を格納することで、物事を単純化できるかどうか疑問に思いました。たとえば、列挙型を次のように定義できますか?
public enum ColorEnum { Red = 5, White = 10, Blue = 15, Green = 20 };
次に、列挙型をその基になる値に変換するのは、intにキャストするのと同じくらい簡単です。上記の関数は、次のように簡略化されます。
public int colorToValue(ColorEnum color)
{
return (int)color;
}
もちろん、各列挙型エントリの値は、列挙型定義で要求されるintである必要があります。
ありがとう!