Ich habe eine Aufzählung und eine switch-Anweisung auf dieser ENUM basiert, die wie folgt aussieht:Aufzählungen mit und ohne Werte
public enum MyEnum
{
VAL1,
VAL2,
VAL3,
ONE = 1,
TWO = 2
}
und den Schalter:
switch ((MyEnum)Enum.Parse(typeof(MyEnum), input.ToUpper()))
{
case MyEnum.VAL1:
Console.WriteLine("val1");
break;
case MyEnum.VAL2:
Console.WriteLine("val2");
break;
case MyEnum.VAL3:
Console.WriteLine("val3");
break;
case MyEnum.ONE:
Console.WriteLine("1");
break;
default:
Console.WriteLine("default");
break;
}
wo Eingang ist eine Zeichenfolge. Das Problem, das ich habe ist, dass ich einen Compiler-Fehler haben,
Das Label 'Fall 1:' kommt bereits in der switch-Anweisung
Ich fand, dass die Bewegung des 'ONE' Element als erste in Die Aufzählung löst das Problem, aber meine Frage ist warum dies passiert?
'VAL2' und' ONE' sind gleiche –
Wenn Sie dies im Debugger ausführen, was ist der Integer-Wert von Val1, Val2 & Val3? –
@MartinVerjans OP kann dies natürlich nicht im Debugger ausführen, da es einfach nicht kompiliert wird. – HimBromBeere