Wenn Sie eine Aufzählung in C # deklarieren, ist der Standardtyp automatisch int.
Also warum in einer case-Anweisung oder anderen Instanzen, wenn Sie die enum verwenden, müssen Sie explizit umschreiben, um die Werte zu verwenden? Was ist der Grund dafür, einen zugrunde liegenden Typ zu haben, wenn du explizit etwas sagen musst oder mache ich hier nur etwas falsch?
%Vor%Was ist der Typ eines Wertes? Wenn der Typ MyEnum ist, ist Casting nicht notwendig und sollte ohne Fehler funktionieren.
Wenn der Typ int ist, dann müssen Sie zu einem MyEnum wechseln, um richtig zwischen Groß- und Kleinschreibung zu wechseln. Sie können dies jedoch etwas vereinfachen, indem Sie den Wert anstelle jeder case-Anweisung übergeben. Zum Beispiel
%Vor%Offensichtlich ist somevalue eine Ganzzahl und nicht explizit als Enum eingegeben. Sie sollten daran denken, dass der zugrunde liegende Wert einer Enumeration nur der "Speichertyp" ist ist nicht implizit austauschbar. Sie können jedoch den Umwandlungsoperator verwenden, um Ihren Code einfach und "mehr" sicher zu machen:
%Vor%Schließlich möchten Sie vielleicht ein Design, bei dem Sie nicht von einer Ganzzahl in eine Enumeration konvertieren müssen, aber oft ist dies beim Lesen von einer Festplatte oder DB nicht der Fall.
Wenn somevalue
vom Typ MyEnum
ist, müssen Sie nicht in int
umwandeln.
Wie andere gesagt haben: