Duplicar posibles:
Why do I get an Enum constant reference cannot be qualified in a case label?Error de compilación - switch con enumeración
Hola, ¿Alguien sabe por qué cuando cambio a través de una enumeración, los casos deben estar en el valor de enumeración no calificado ?
Ejemplo:
switch(var) {
case Enum.FIRST:
break;
}
es ilegal
pero:
switch(var) {
case FIRST:
break;
}
es legal.
Entiendo que var es de un tipo específico (Enum) pero ¿por qué le molesta al compilador si uso el nombre completo del valor Enum?
Extrañamos el alcance en que esto se lleva a cabo, así como la enumeración definición, y el error de compilador citado en su totalidad. Gracias. –
@usuario desconocido, la pregunta es bastante clara, creo que –
La diferencia es el contexto. En el primer caso, es el valor en una instancia correspondiente (objeto). En el segundo caso, su variable de clase en Enum. El interruptor funciona en la variable definida en las instancias utilizadas en la cláusula switch. Está definido en especificaciones de esa manera. –