Hallo Comm,
Ich stehe gerade vor einer neu strukturierung meines Programmes und dabei vor einer eigentlich kleineren Hürde, die ich aber gerne elegant lösen möchte.
Und zwar geht es um die Verwaltung eines Buttons. Dieser Button ist so ziemlich das einzigste auf der GUI, er soll aber zu unterschiedlichen Zeipunkten verschiedene Funktionen haben. Wie stell ich es jetzt an, dass ich weiß, wann der Button die bestimmte Methode aufrufen soll ?
Ich hatte es erst folgendermaßen gelöst:
int status = 0;
public void Button1_Click()
{
switch (status)
{
case 0:
Methode();
status = 1;
break;
case 1:
Methode2();
status = 2;
break;
....
}
}
Finde das aber sehr unschön und nicht sehr unübersichtlich. Was habt ihr für Vorschläge und Tipps ?
ich denke, das state pattern wäre eine elegante lösung
hmmm... ich weiß nicht genau in welche richtung das geht... aber ich hab so etwas ähnliches mal mit events onClick gemacht....
es kann aber auch sein das ich deine frage falsch verstehe... wenn ja dann sorry....
grüße
private int Main()
{
string programmingSkills = getMySkills("programming")
return = 1;
}
Hallo juLz,
int status = 0;
public void Button1_Click()
{
DeinMethodenArray [status++] ();
}
herbivore
Danke für die Vorschläge.
DeinMethodenArray ? Das Initialisiere ich dann wie ?
Das funktioniert ja auch leider nur, wenn die Methoden immer eine gleiche reihenfolge haben, oder nicht ?
Was mache ich, wenn ich zum Beispiel ein paar Stellen überspringen will, zB wenn der User dazu keine Rechte hat ?!
Edit:
Da es nur 2 unterschiedliche Gruppen gibt bei den Usern, könnte ich 2 unterschiedliche Arrays nehmen oder in jeder Methode überprüfen ob der User die Rechte hat und die dann einfach mit einem return überspringen ?!?
Hallo juLz,
DeinMethodenArray ? Das Initialisiere ich dann wie ?
So zum Beispiel:
public delegate void MeinDelegat ();
...
MeinDelegat [] md = new MeinDelegat [2];
md[0] = MeineMethode1;
md[1] = MeineMethode2;
Da es nur 2 unterschiedliche Gruppen gibt bei den Usern, könnte ich 2 unterschiedliche Arrays nehmen oder in jeder Methode überprüfen ob der User die Rechte hat und die dann einfach mit einem return überspringen ?!?
Dann solltest du das Array nur mit den Methoden füllen, die der Benutzer ausführen darf.
herbivore