Verkleich mit Klartext
-
Hi,
ich hab vor langer Zeit mal in VB eine if-Abfrage mit der Form:
if(mode == modus.drei)geschrieben. Imprinzip will ich die Abfrage in Klartext schreiben und keine Zahlen (0,1,2,..) verwenden. Leider weiß ich nicht mehr genau wie ich das gemacht habe. Geht das auch in vc++?
-
Komisches Vorhaben.
const int drei = 3;? Damit man das später zentral umdefinieren kann zu
const int drei = 4;, falls der Wert der Zahl Drei sich jemals ändert? Nein, das klingt nach dem Unsinn, der es auch ist. Wozu soll das also gut sein? Beschreib dein Vorhaben mal genauer.
-
Imprinzip will ich die Abfrage in Klartext schreiben
Das Prinzip ist schlecht.
-
das problem ist wenn ich sowas mache wie:
if(mode == 0) ... else if(mode == 1) ... else if(mode == 2) ... ...ich später keine Ahnung mehr hab was 0,1,2 ist. Wenn ich jedoch so was schreibe wie
if(mode == modus.screenCapture) ... else if(mode == modus.CKamera) ... else if(mode == modus.RealPicture) ... ...e
weiß ich sofort was gemeint ist. Natürlich kann ich auch Kommentare hinter die jeweilige Zeile schreiben. Das müsste ich dann aber immer machen, wenn ich mode verwende.
Der Kompiler ersetzt modus.CKamera direkt durch die zahl 1. Also ist das kein mehraufwand
-
Benutze
enum! Ich vermute mal, dasvirtualbesser geeignet ist, um das Problem zu loesen.
-
danke! Das hab ich gesucht.
-
ich würde hier an deiner stelle einen enumator-typen erstellen und "mode" gleich auch als instanz dieses enumators machen (zwecks typsicherheit). beispiel:
enum modes { screenCapture, CKamera, RealPicture }; void f(modes mode) { if(mode == screenCapture) //... }