Unterschied zwischen Delegierten und Ereignissen in C #

Hauptunterschied - Delegierte gegen Ereignisse in C #
 

C # ist eine von Microsoft entwickelte Programmiersprache. Es unterstützt strukturierte Programmierung und objektorientierte Programmierung. Delegaten und Ereignisse werden für die ereignisgesteuerte Programmierung in C # verwendet. Ein Delegat ist ein typsicherer Zeiger auf eine Methode. In einer Anwendung mit einer grafischen Benutzeroberfläche (GUI) gibt es Schaltflächen usw. Wenn Sie auf eine Schaltfläche klicken, wird eine Aktion ausgeführt. Diese Aktionen werden als Ereignisse bezeichnet. Wenn Sie beispielsweise eine Webseite aktualisieren, wird das Ereignis zum Laden der Seite ausgelöst. Dieser Artikel beschreibt den Unterschied zwischen Delegierten und Ereignissen in C #. Das Hauptunterschied zwischen Delegat und Ereignis in C # ist das Ein Delegat ist eine Referenz auf eine Methode, während ein Ereignis mithilfe eines Delegaten einem Ereignishandler zugeordnet wird. Wenn ein Ereignis auftritt, sendet es ein Signal an den Delegierten. Dann führt der Delegat die entsprechende Funktion aus. Daher sind alle Ereignisse von Delegierten abhängig.

INHALT

1. Übersicht und Schlüsseldifferenz
2. Was sind Delegierte in C #
3. Was sind Ereignisse in C #
4. Ähnlichkeiten zwischen Delegierten und Ereignissen in C #
5. Side-by-Side-Vergleich - Delegierte vs. Ereignisse in C # in Tabellenform
6. Zusammenfassung

Was sind Delegierte in C #?

Delegierte in C # ähneln Callback-Funktionen in anderen Programmiersprachen wie JavaScript. Callback-Funktionen werden zur Laufzeit zugewiesen. Sie bieten Funktionen, die bei Bedarf ein- und ausgeschaltet werden können. Dasselbe kann mit Delegaten in C # implementiert werden. Die Delegierten in C # entkoppeln den Anrufer und die aufgerufene Funktion. Daher wird die schwere Kopplung reduziert.

.NET-Framework klassifizierte Typen in zwei Kategorien. Sie sind Werttypen und Referenztypen. Die Struktur ist ein Beispiel für den Werttyp. Die Klasse ist ein Beispiel für einen Referenztyp. Delegaten werden ebenfalls als Typen bezeichnet. Ein Delegat wird verwendet, um einen Verweis auf eine Methode zu halten. Sie sind typsichere Zeiger. Delegiert werden von der System.Delegate-Klasse abgeleitet. Die Delegatendeklaration ähnelt einer Methodendeklaration, enthält jedoch das Schlüsselwort 'delegate'. Die Syntax des Delegaten lautet wie folgt. Delegierter. Der Rückgabetyp deklariert den Rückgabewert von der Methode. Es wird vom Delegierten angerufen. Die Parameterliste definiert die von der Methode benötigten Parameter. Verweisen Sie das unten stehende Programm mit Delegierten.

Abbildung 01: C # -Programm mit Delegierten

Gemäß dem obigen Programm ähneln die Methoden calSquare und calCube dem deklarierten Delegaten. Im Hauptprogramm wird die Variable cal der Funktion calSquare zugewiesen. Jetzt zeigt cal auf die calSquare-Methode. Beim Übergeben des Werts wird der quadratische Wert zurückgegeben und auf dem Bildschirm gedruckt. Cal wird wieder der calCube-Methode zugewiesen. Jetzt zeigt cal auf die calCube-Methode. Beim Übergeben des Werts wird der Cube-Wert zurückgegeben und auf dem Bildschirm gedruckt. Derselbe Delegat wird zum Verweisen auf verschiedene Methoden verwendet. Daher erhöht es die Programmflexibilität.

Was sind Ereignisse in C #?

In einer Anwendung kann es Tastendrücke, Tastenklicks und Mausbewegungen geben. Wenn diese auftreten, wird ein Ereignis ausgelöst. Wenn die Schaltfläche "Abschicken" in einem Übermittlungsformular gedrückt wird, wird das Ereignis button_click () im Hintergrund ausgelöst. Das Ereignis ruft die zugehörige Funktion auf und führt sie aus. Wenn ein Ereignis auftritt, reagiert die Anwendung darauf. In einem Ereignisbehandlungsprogramm gibt es zwei Abschnitte. Der Herausgeber enthält die Definition von Ereignissen und delegiert. Der Abonnent akzeptiert das Ereignis und stellt den Ereignishandler zur Verfügung.

Die Deklaration der Veranstaltung ist Veranstaltung; Der Typ einer Ereignisdeklaration muss ein Delegattyp sein, und der Delegat muss genauso zugänglich sein wie das Ereignis selbst. Der Ereignisname sollte ein gültiger C # -Name sein.

Abbildung 02: C # -Programm mit Ereignissen

Gemäß dem obigen Programm werden der Delegat und die Veranstaltung erstellt. In der Calculate-Klasse gibt es eine Methode, um zwei Zahlen hinzuzufügen. Wenn eine ungerade Zahl gefunden wird, tritt das Ereignis auf. Es ist das eventOddNumber (). In der Hauptmethode ruft der EventOddNumber-Ereignishandler den Delegaten auf. Schließlich führt der Delegat die Methode aus.

Was ist die Ähnlichkeit zwischen Delegierten und Ereignissen in C #?

  • Sowohl Delegierte als auch Ereignisse in C # beziehen sich auf ereignisgesteuert

Was ist der Unterschied zwischen Delegierten und Ereignissen in C #?

Delegierte vs Ereignisse in C #

Ein Delegat ist eine Referenztypvariable, die den Verweis auf eine Methode enthält. Ein Ereignis ist ein Delegat-Klassenmitglied, das vom Objekt oder der Klasse verwendet wird, um andere Objekte über das Auftreten eines Ereignisses zu benachrichtigen.
 Stichwort
Ein Delegierter wird mit dem Schlüsselwort 'Delegat' deklariert.. Ein Ereignis wird mit dem Schlüsselwort "event" deklariert.
Abhängigkeit
Delegierte sind nicht abhängig. Ereignisse sind abhängig von Delegierten.

Zusammenfassung - Delegierte vs Events in C #

Delegaten und Ereignisse sind zwei Konzepte für die ereignisgesteuerte Programmierung in C #. In diesem Artikel wurde der Unterschied zwischen Delegierten und Ereignissen in C # beschrieben. Der Unterschied zwischen Delegaten und Ereignissen in C # besteht darin, dass ein Delegat eine Referenz auf eine Methode ist, während ein Ereignis einem Ereignishandler mithilfe eines Delegaten zugeordnet ist. Ereignisse sind abhängig von Delegierten. Wenn ein Ereignis aufgetreten ist, sendet es ein Signal an den Delegierten. Dann führt der Delegat die entsprechende Funktion aus

Referenz:

1. Balagurusamy, E. Programmierung in C #, A premier. Vierte Auflage, McGraw Hill Education (India) Private Limited, 2016.
2. „Hauptmenü“. C Lernprogramm. Hier verfügbar 
3.Sachinbpaul. Delegierte in C #, Sachin Paul, 1. Oktober 2014. Hier verfügbar