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

Wie kann ich zusätzliche Parameter an einen Event-Handler in C# übergeben?

Susan Sarandon
Freigeben: 2025-01-23 08:31:10
Original
439 Leute haben es durchsucht

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

Übergabe zusätzlicher Daten an C#-Ereignishandler

Ereignishandler sind in C# für die Reaktion auf Ereignisse von entscheidender Bedeutung. Allerdings stellt die Standard-Event-Handler-Signatur oft nur das sender-Objekt bereit. Dies schränkt die Möglichkeit ein, zusätzlichen Kontext zu übergeben. Lassen Sie uns eine Lösung finden:

Stellen Sie sich dieses Szenario vor:

<code class="language-csharp">private void setup(string someData)
{
    Object.assignHandler(evHandler); // Only sender is passed
}

public void evHandler(Object sender)
{
    // someData is inaccessible here
}</code>
Nach dem Login kopieren

someData wird innerhalb von evHandler benötigt, aber der Standardereignismechanismus lässt seine direkte Einbindung nicht zu.

Die Lambda-Ausdruckslösung

Die Lösung liegt in der Verwendung eines Lambda-Ausdrucks beim Zuweisen des Event-Handlers:

<code class="language-csharp">private void setup(string someData)
{
    Object.assignHandler((sender) => evHandler(sender, someData)); // Lambda expression to pass additional data
}

public void evHandler(Object sender, string someData)
{
    // Now someData is accessible!
}</code>
Nach dem Login kopieren

Der Lambda-Ausdruck (sender) => evHandler(sender, someData) erstellt eine anonyme Methode. Diese Methode empfängt das sender-Objekt vom Ereignis und ruft dann evHandler auf, wobei sowohl sender als auch someData übergeben werden. Dadurch können Sie effektiv zusätzliche Parameter in Ihren Event-Handler einfügen. Dieser Ansatz bietet mehr Flexibilität und Kontrolle über die Daten, die an Ihre Ereignisverarbeitungslogik übergeben werden.

Das obige ist der detaillierte Inhalt vonWie kann ich zusätzliche Parameter an einen Event-Handler in C# übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage