Heim >Backend-Entwicklung >C++ >Wie kann ich in C# zusätzliche Parameter an Ereignishandler übergeben?

Wie kann ich in C# zusätzliche Parameter an Ereignishandler übergeben?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-23 08:16:09377Durchsuche

How Can I Pass Extra Parameters to Event Handlers in C#?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn