Unterschied zwischen Delegaten und Ereignissen in C#

WBOY
Freigeben: 2023-08-30 12:25:13
nach vorne
951 Leute haben es durchsucht

C# 中的委托和事件之间的区别

In diesem Artikel werden wir den Unterschied zwischen Delegaten und Ereignissen in C# verstehen.

Delegate

  • Es kann mit dem Schlüsselwort „delegate“ deklariert werden.
  • Es ist ein Funktionszeiger.

  • Es speichert zur Laufzeit einen Verweis auf eine oder mehrere Methoden.

  • Es ist ein eigenständiges Schlüsselwort.

  • Es hängt nicht von Ereignissen ab

  • Es enthält die Methoden Combine() und Remove(), die dabei helfen, Methoden zur Aufrufliste hinzuzufügen.

  • Es kann als Parameter an eine Methode übergeben werden.

  • Mit dem Operator „=" kann eine einzelne Methode zugewiesen werden.

  • Der „+="-Operator kann verwendet werden, um einem Delegaten mehrere Methoden zuzuweisen.

Ereignisse

  • können mit dem Schlüsselwort „event“ deklariert werden.

  • Es kann als Benachrichtigungsmechanismus definiert werden, der auf Delegation basiert.

  • Es kommt auf die Provision an.

  • Es kann nicht ohne einen Delegaten erstellt werden.

  • Es kann als Wrapper für Delegateninstanzen verstanden werden.

  • Dadurch wird verhindert, dass Benutzer des Stellvertreters den Stellvertreter und seine Anrufliste zurücksetzen.

  • Es ist nur das Hinzufügen oder Entfernen von Zielen aus der Anrufliste möglich.

  • Die Klasse „EventInfo“ prüft auf Ereignisse und hilft beim Binden von Ereignishandlern.

  • Diese Handles umfassen Methoden wie AddEventHandler() und RemoveEventHandler(), die beim Hinzufügen bzw. Entfernen von Methoden zur Aufrufliste helfen.

  • kann Ereignisse auslösen, kann aber nicht als Parameter an Methoden übergeben werden.

  • Der „="-Operator kann nicht mit Ereignissen verwendet werden.

  • Die Operatoren „+=" und „-=" können mit Ereignissen verwendet werden, um Ereignishandler hinzuzufügen bzw. zu entfernen.

  • Diese Methoden werden intern wie AddEventHandler und aufgerufen EventHandler löschen.

Das obige ist der detaillierte Inhalt vonUnterschied zwischen Delegaten und Ereignissen in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage