Почему переключатель 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, Но я не могу написать:

SomeEnum x = SomeEnum.A;
switch(x)
{
    case 0:
        break;
    case 1: // <--- Here is a compilation error.
        break;
    case SomeEnum.C:
        break;
    default:
        break;
}

Почему существует только неявное преобразование для0?

Ответы на вопрос(2)

Ваш ответ на вопрос