好奇心から抜け出して:列挙型の変数に0.0を割り当てることができるのに、1.0に割り当てられないのはなぜですか?次のコードを見てください。
public enum Foo
{
Bar,
Baz
}
class Program
{
static void Main()
{
Foo value1 = 0.0;
Foo value2 = 1.0; // This line does not compile
Foo value3 = 4.2; // This line does not compile
}
}
数値型と列挙値の間の変換はキャストを介してのみ許可されていると思いましたか?つまり、value2 = (Foo) 1.0;2行目をMainコンパイルできるようにFooを記述できます。0.0C#の値に例外があるのはなぜですか?
1.0。