Heim Backend-Entwicklung C#.Net-Tutorial c# Was ist ein Delegierter und was ist ein Ereignis?

c# Was ist ein Delegierter und was ist ein Ereignis?

Apr 04, 2024 pm 02:21 PM
c#

Ein Delegat ist ein Referenztyp, der auf eine Methode verweist und zum Erreichen einer losen Kopplung verwendet wird, während ein Ereignis ein spezieller Delegat ist, der für die Ereignisbehandlung verwendet wird. Durch die Delegation wird die Verantwortung für das Aufrufen von Methoden an den Empfänger übertragen, wodurch die Wiederverwendbarkeit des Codes verbessert wird. Ereignisse ermöglichen es Objekten, Abonnenten über das Eintreten von Ereignissen zu benachrichtigen, und Abonnenten können auf die Ereignisse reagieren. Um einen Delegaten zu verwenden, müssen Sie einen Delegatentyp mit derselben Signatur wie die aufgerufene Methode definieren, ein Delegate-Objekt erstellen, das auf die Methode verweist, und es als Parameter übergeben. Um ein Ereignis zu verwenden, müssen Sie ein Ereignis mithilfe eines Delegatentyps in der Klasse definieren. Abonnenten können sich durch Hinzufügen und Entfernen von Methoden anmelden. Wenn das Ereignis ausgelöst wird, werden alle Abonnenten aufgerufen.

c# Was ist ein Delegierter und was ist ein Ereignis?

Die Rolle von Delegaten und Ereignissen in C#

Delegierte und Ereignisse sind häufig verwendete Mechanismen in C#, um eine lose Kopplung zwischen Codes und Ereignisbehandlung zu erreichen.

Delegate

  • Definition: Ein Delegate ist ein Referenztyp, der auf eine Methode zeigt, wodurch Methoden als Parameter an andere Methoden übergeben werden können.
  • Funktion: Delegate überträgt die Verantwortung für den Aufruf einer Methode vom Aufrufer auf den Empfänger und erreicht so Wiederverwendbarkeit und Flexibilität des Codes.

Ereignis

  • Definition: Ein Ereignis ist ein besonderer Delegierter, der eine Aktion oder ein Ereignis darstellt, das zu einem bestimmten Zeitpunkt ausgelöst werden kann.
  • Rolle: Ereignisse ermöglichen es Objekten, externe Abonnenten über das Auftreten bestimmter Ereignisse zu benachrichtigen, und Abonnenten können auf diese Ereignisse reagieren.

Die Beziehung zwischen Delegation und Ereignissen

Delegate ist der zugrunde liegende Mechanismus von Ereignissen. Ereignisse verwenden Delegaten, um eine Liste von Abonnenten zu verwalten und beim Eintreten des Ereignisses Methodenaufrufe an alle Abonnenten auszulösen.

Verwenden von Delegaten

Um Delegaten zu verwenden, müssen Sie die folgenden Schritte ausführen:

  1. Definieren Sie einen Delegatentyp, der dieselbe Signatur wie die Methode hat, die Sie aufrufen möchten.
  2. Erstellen Sie eine Instanz des Delegate-Objekts, die auf die aufzurufende Methode verweist.
  3. Delegierte Objekte als Parameter an andere Methoden übergeben.

Ereignisse verwenden

Um Ereignisse zu verwenden, müssen Sie die folgenden Schritte ausführen:

  1. Definieren Sie ein Ereignis in einer Klasse, die einen Delegatentyp als Typ verwendet.
  2. Abonnenten fügen über den Operator „event +=“ Methoden zu Ereignissen hinzu.
  3. Wenn ein Ereignis ausgelöst wird, entfernen Sie die Methode über den Operator event -= oder rufen Sie alle Abonnenten über die Methode event() auf.

Beispiel

Hier ist ein einfaches Beispiel mit Delegierten und Ereignissen:

// 定义一个委托
public delegate void MyEventHandler(object sender, EventArgs e);

// 定义一个事件
public event MyEventHandler MyEvent;

// 触发事件
protected virtual void OnMyEvent(EventArgs e)
{
    MyEvent?.Invoke(this, e);
}
Nach dem Login kopieren
// 订阅事件
myClass.MyEvent += MyEventHandler;
Nach dem Login kopieren
// 触发事件
myClass.OnMyEvent(new EventArgs());
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonc# Was ist ein Delegierter und was ist ein Ereignis?. 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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Active Directory mit C# Active Directory mit C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

Zugriffsmodifikatoren in C# Zugriffsmodifikatoren in C# Sep 03, 2024 pm 03:24 PM

Leitfaden zu den Zugriffsmodifikatoren in C#. Wir haben die Einführungstypen von Zugriffsmodifikatoren in C# zusammen mit Beispielen und Ausgaben besprochen.

Zufallszahlengenerator in C# Zufallszahlengenerator in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

C#-Datenrasteransicht C#-Datenrasteransicht Sep 03, 2024 pm 03:32 PM

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

Muster in C# Muster in C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

C#-Serialisierung C#-Serialisierung Sep 03, 2024 pm 03:30 PM

Leitfaden zur C#-Serialisierung. Hier besprechen wir die Einführung, die Schritte des C#-Serialisierungsobjekts, die Funktionsweise bzw. das Beispiel.

Webdienste in C# Webdienste in C# Sep 03, 2024 pm 03:32 PM

Leitfaden zu Webdiensten in C#. Hier besprechen wir eine Einführung in Webdienste in C# mit Technologienutzung, Einschränkungen und Beispielen.

Primzahlen in C# Primzahlen in C# Sep 03, 2024 pm 03:35 PM

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

See all articles