Heim >Backend-Entwicklung >C++ >Wie kann ich zusätzliche Parameter an Event-Handler in C# übergeben?
Bei der ereignisgesteuerten Programmierung werden Ereignishandler normalerweise mithilfe von Methoden zugewiesen, die nur das Senderobjekt als Parameter akzeptieren. Manchmal müssen Sie jedoch möglicherweise zusätzliche Daten an den Ereignishandler übergeben.
Beispiel:
Bedenken Sie den folgenden Code:
<code class="language-csharp">private void setup(string someData) { Object.assignHandler(evHandler); } public void evHandler(Object sender) { // 需要在此处使用 someData!!! }</code>
In diesem Beispiel ist evHandler ein Event-Handler und benötigt Zugriff auf den someData-String, der in der Setup-Methode verfügbar ist.
Lösung:
Um someData an evHandler zu übergeben, können Sie einen Event-Handler mit einem Lambda-Ausdruck wie diesem definieren:
<code class="language-csharp">private void setup(string someData) { Object.assignHandler((sender) => evHandler(sender, someData)); } public void evHandler(Object sender, string someData) { // 需要在此处使用 someData!!! }</code>
In diesem Code erstellt der Lambda-Ausdruck (sender) => evHandler(sender, someData)
einen neuen Event-Handler, der das Senderobjekt als Parameter übernimmt und es zusammen mit someData an die evHandler-Methode übergibt. Dadurch wird sichergestellt, dass someData im Event-Handler verfügbar ist.
Das obige ist der detaillierte Inhalt vonWie kann ich zusätzliche Parameter an Event-Handler in C# übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!