ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
1524
1524
EMPFEHLEN
-
Hi,
ich brauch nochmal eure Hilfe. Undzwar hab ich vor so eine Art Zustandsmaschine für mein Programm zu erstellen, indem es logischerweise dann ca. 20-30 Zustände gibt.
Ich könnte ja einfach n String erstellen und diesem immer einen Zustand geben, aber das will ich nicht; ich möchte gerne, dass ich eine art enumeration hab, so z.B.
Code :1 2 3 4 5 6 7
enum myProject_States{ ONLINE, OFFLINE, RUNNING, IDLE, .... }
Ich habs schon probiert, allerdings krieg ich die Abfrage irgendwie nur über integers hin, indem ich z.B. eine integerVariable erstell und im Code z.B. folgendes schreib:
int MyProject_State = (int)myProject_States.ONLINE;
wo ist mein denkfehler ? irgendwie hab ich auch das gefühl in C war das mit den enums ganz anders.
ich möchte gerne, dass ich im Code so programmieren könnte, weil mir persönlich so eine Denkweise naheliegt:
Code :1 2 3 4 5 6
... if (myProject_State == IDLE) { doSomething(...); myProject_State = RUNNING; }
Ich weiß, wenn ich das mit einem String machen würde, wärs einfacher, aber da wären noch die nervigen anführungsstriche und ich hab früher in C immer mit enums so programmiert und möchte das gerne beibehalten.
Evtl. mach ich auch einfach nur was komplett verkehrt.
Gruß
Conners
-
Enumerations sind typisiert. Du musst also der Zustandsvariablen auch den richtigen Typ verpassen und bei Vergleichen den Typ mit angeben:
GrußCode csharp:1 2 3 4 5 6 7 8
myProject_States MyProject_State = myProject_States.ONLINE; // .. if( MyProject_State == myProject_States.IDLE ) { // ... }
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
schade...
Gibts da keinen von mir aus auch codemäßig aufwendigen Trick, wie man das umgehen könnte? also dass man nur schreiben muss state = ONLINE ... etc. ?
Wenn ich mehrere Zustandsmaschinen einbau, muss ichs eh so machen, aber ich hab nur eine einzige.
Trotzdem schonmal danke für den Hinweis
-
Die Alternative wäre halt nur das Typecasting, aber ansonsten denke ich nicht, dass das noch irgendwie anders geht.
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Also ob nun state = ONLINE oder state = StateType.ONLINE.
Ich sehe da kein wirklichen mehr Aufwand drin und versteh auch nicht wirklich was du nun anders haben willst
oder suchst du eher sowas:
Code :1 2 3 4 5 6 7
enum StateType { IrgendNenStatus=1 } ... Enum.IsDefined(typeof(StateType), 1); //true Enum.IsDefined(typeof(StateType), 2); //false
-
Es geht nicht um den Aufwand, sondern darum, dass ich das vorher in C/C++ ähnlich gemacht hab. Aber so wie es zur Zeit ist, ists auch super.
Ich bedanke mich.
Schöne Grüße
Conners
Ähnliche Themen
-
enum
Von JavaForever im Forum JavaAntworten: 20Letzter Beitrag: 07.04.10, 12:55 -
enum in db2
Von socke999 im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 01.12.08, 07:11 -
enum kombinieren
Von gigx im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 3Letzter Beitrag: 17.09.08, 15:27 -
enum
Von lernen.2007 im Forum JavaAntworten: 1Letzter Beitrag: 20.11.05, 18:48 -
enum
Von rauch_c im Forum .NET ArchivAntworten: 5Letzter Beitrag: 11.05.04, 09:28





Zitieren

Login





