Also, ich habe eine Variable "state" in einer Klasse. Ich möchte es als Integer deklarieren, damit ich einige if-Anweisungen speichern kann.
%Vor%Eine Möglichkeit besteht darin, einen enum-Status {Eins = 0, Zwei = 1, Drei = 3} zu deklarieren und dann in der switch-Anweisung:
%Vor%Also, ist es eine gute Praxis, enum so zu benutzen? Gibt es einen besseren Weg, dies zu tun?
Danke!
Ja, das ist ein guter Weg, es zu tun. In der Regel verwenden Sie enums
, um das Leben einfacher zu machen, viele andere Zahlen, die anderen Codern nichts wirklich sagen, sind nicht sehr hilfreich.
Das ist also eine sehr gute Art, es zu benutzen, es macht Ihren Code lesbar und verständlich.
Auch wenn @James McNellis darauf hingewiesen hat, ist die Benennung von Enums wie "1,2,3,4" eine schlechte Idee, da es nicht ausdrückt, was es wirklich tut.
Aber ich vermute, das war nur ein Beispiel von Ihrer Seite.
Betrachten Sie dies stattdessen:
%Vor%In diesem Fall ist die "Operation" entweder: Warten, Laufen oder Beendet, was es lesbar und verständlich macht. Betrachten Sie nun den Weg ohne Enums:
%Vor%Was sagt dir 997? Absolut Nichts ! Verwenden Sie lesbaren und verständlichen Code, um jedermann das Leben zu erleichtern.
Der gesamte Code, den Sie oben haben, funktioniert genauso gut, wenn Sie state
als State
und nicht als int
deklariert haben. Sie können es in einer switch-Anweisung verwenden, ihm neue Werte zuweisen, Vergleiche mit ihm anstellen usw. Es gibt wirklich keine Vorteile, ein int
hier zu verwenden, da das im Wesentlichen "im Quellcode liegt". Ihre Variable ist keine ganze Zahl. Es macht keinen Sinn, es mit einem Wert zu multiplizieren oder zu dividieren oder es nach links oder rechts zu verschieben. Wenn Sie die Variable als State
markieren, wird deutlicher, dass Sie wirklich einen von mehreren Werten halten und Sie daran gehindert werden, einige der oben genannten Fehler zu machen. Plus, es gibt dem Compiler eine bessere Chance, solche Dinge zu diagnostizieren:
Verwenden Sie im Allgemeinen das Typsystem zu Ihrem Vorteil. Wenn es ein int
ist, mach es zu einem int
. Wenn es sich um einen Aufzählungstyp handelt, machen Sie es zu einem Aufzählungstyp.