Heim > Backend-Entwicklung > C++ > Wie kann ich anonyme Methoden von Ereignissen in C# abbestellen?

Wie kann ich anonyme Methoden von Ereignissen in C# abbestellen?

Patricia Arquette
Freigeben: 2025-01-27 07:26:08
Original
741 Leute haben es durchsucht

How Can I Unsubscribe Anonymous Methods from Events in C#?

effektiv abgemeldet anonyme Ereignishandler in C#

c# Ereignisse ermöglichen eine dynamische Ereignisbehandlung durch das Hinzufügen von Ereignishandler (Methoden). Anonyme Methoden, die unter Verwendung von Lambda -Ausdrücken oder Delegiertenausdrücken definiert sind, bieten eine prägnante Möglichkeit, diese Handler direkt im Ereignisabonnement zu erstellen. Das Entfernen dieser anonymen Handler erfordert jedoch einen bestimmten Ansatz.

Anonyme Methode Ereignishandler

verstehen

Anonyme Methoden sind Inline -Codeblöcke; Im Gegensatz zu benannten Methoden fehlt ihnen eine formelle Erklärung. Dies macht die Abmeldung schwieriger, da sie keinen leicht identifizierbaren Namen haben.

Abonnieren mit anonymen Methoden: Ein einfaches Beispiel

abonnieren ist einfach:

<code class="language-csharp">MyEvent += delegate { Console.WriteLine("Event triggered!"); };</code>
Nach dem Login kopieren

Die vorläufige Herausforderung und Lösung

Der Schlüssel zum Abmeldungen besteht darin, einen Verweis auf die anonyme Methode zu speichern, bevor Sie sie an das Ereignis anfügen:

<code class="language-csharp">Action myEventHandler = delegate { Console.WriteLine("Event triggered!"); };
MyEvent += myEventHandler;</code>
Nach dem Login kopieren

Jetzt wird uns nicht eingestellt:

<code class="language-csharp">MyEvent -= myEventHandler;</code>
Nach dem Login kopieren

Wenn wir den anonymen Delegierten in einer Variablen halten (myEventHandler), behalten wir einen Zeiger auf und ermöglichen die Entfernung von der Handlerliste des Ereignisses. Dies gewährleistet das ordnungsgemäße Ereignismanagement bei der Verwendung anonymer Methoden. Diese Technik ermöglicht eine flexible und saubere Ereignisbehandlung mit anonymen Methoden und vermeidet die Komplikationen von unsubschreibenden namenlosen Handlern.

Das obige ist der detaillierte Inhalt vonWie kann ich anonyme Methoden von Ereignissen in C# abbestellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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