Frage

Ich habe diesen Schnipsel

private void westButton_click(object sender, EventArgs ea)
{
    PlayerCharacter.Go(Direction.West);
}

wiederholt für Nord, Süd und Ost.

Wie kann ich eine Funktion erklären, dass würde lassen Sie mich wie ir programmatisch Methoden erzeugen?

z. B. ich möchte in der Lage sein zu nennen

northButton.Click += GoMethod(Direction.North);

stattdessen das Verfahren zur Definition und dann

northButton.Click += new EventHandler(northButton.Click);
War es hilfreich?

Lösung

northButton.Click += (s, e) => GoMethod(Direction.North);

(oder ...)

northButton.Click += (s, e) => PlayerCharacter.Go(Direction.North);

Andere Tipps

Ich scheine eine Lösung gefunden zu haben:

private EventHandler GoMethod(Direction dir)
{
    return new EventHandler((object sender, EventArgs ea) => PlayerCharacter.Go(dir));
}

Meine einzige Sorge wäre an der Zeit, zu binden; wenn PlayerCharacter ist null wenn ich GoMethod nennen, was passieren würde?

northButton.Click += (s,e) => GoMethod(Direction.North);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top