Подтвердить что ты не робот

Ошибка компиляции - переключатель с перечислением

Возможный дубликат:
Почему я не могу получить ссылку на константу Enum в ярлыке case?

Привет, Кто-нибудь знает, почему, когда я переключаю Enum, случаи должны быть на неквалифицированном значении Enum?

Пример:

switch(var) {

case Enum.FIRST:

break;

}

является незаконным

а

switch(var) {

case FIRST:

break;

}

является законным.

Я понимаю, что var имеет определенный тип (Enum), но почему компилятор волнуется, если я использую полное имя значения Enum?

4b9b3361

Ответ 2

Я предполагаю, потому что иначе вы могли бы сделать что-то вроде этого:

switch(var) {
  case AnyOtherEnum.FIRST:
  break;
}

Ответ 3

Потому что вы переключаете 'var' уже как "Enum", поэтому в случае Enum.FIRST будет "Enum.Enum.FIRST". Вид, -)