Heim >Backend-Entwicklung >C++ >Wie kann ich in C# zusätzliche Parameter an Ereignishandler übergeben?
Zugriff auf zusätzliche Parameter im Event-Handler
Angenommen, Sie müssen zusätzliche Daten an den Ereignishandler übergeben. Wir haben zum Beispiel eine Setup-Methode, die Event-Handler zuweist:
<code class="language-csharp">private void setup(string someData) { Object.assignHandler(evHandler); }</code>
Und der Event-Handler evHandler
muss auf den someData
-Parameter zugreifen:
<code class="language-csharp">public void evHandler(Object sender) { // 需要在此处使用 someData!!! }</code>
Lösung
Um zusätzliche Parameter an einen Event-Handler zu übergeben, können Sie einen Lambda-Ausdruck als Delegaten verwenden. Anstatt die Methode evHandler
direkt zuzuweisen, weisen wir einen Lambda-Ausdruck zu, der das Absenderobjekt als erstes Argument und someData
als zweites Argument verwendet:
<code class="language-csharp">private void setup(string someData) { Object.assignHandler((sender) => evHandler(sender, someData)); }</code>
Jetzt kann die evHandler
-Methode sowohl den Absender als auch die someData
-Parameter akzeptieren:
<code class="language-csharp">public void evHandler(Object sender, string someData) { // 访问发送者和 someData }</code>
Das obige ist der detaillierte Inhalt vonWie kann ich in C# zusätzliche Parameter an Ereignishandler übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!