があります:なぜenumのスイッチは暗黙の変換を0に受け入れますが、他の整数は受け付けません。
enum SomeEnum
{
A = 0,
B = 1,
C = 2
}
今、コンパイラは私が書くことができます:
SomeEnum x = SomeEnum.A;
switch(x)
{
case 0: // <--- Considered SomeEnum.A
break;
case SomeEnum.B:
break;
case SomeEnum.C:
break;
default:
break;
}
0
はSomeItems.A
を考えられています。しかし、私は書くことができません:
なぜ0
の暗黙の変換が存在するのですか?
同様の質問に対するエリック・リッパートの答えを参照してください。http:// stackoverflow。com/a/14238286/414076 –