Heim  >  Artikel  >  Backend-Entwicklung  >  Unterschied zwischen Delegaten und Ereignissen in C#

Unterschied zwischen Delegaten und Ereignissen in C#

WBOY
WBOYnach vorne
2023-08-30 12:25:13922Durchsuche

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen