C# Ereignisse

C# Ereignisse

Ereignisse müssen so bald wie möglich durch Bewerbungen reagiert werden. Damit wird die Kommunikation zwischen den Prozess durch die Nutzung von Ereignissen durchgeführt. Benutzeraktionen wie Tastenanschläge, Klicks und Mausbewegungen wie systemgenerierte Ereignisse sind beide Beispiele für Benutzeraktionen. In C#ist ein Ereignis ein Delegierter, der gekapselt wurde. Der Delegierte definiert die Methodeerklärung des Ereignishandlers für den Klassenabonnenten. In dem Artikel werden wir das in C# auftretende Ereignis angeben und auch die anderen Klassen darüber informieren und den Ereignishandler in C# erörtert.

Was ist Event in C# in Ubuntu 20.04?

Delegierte werden verwendet, um Ereignisse in C#zu definieren, bei denen es sich um eine Teilmenge von Delegierten handelt. Ein Verlag ist verpflichtet, eine Veranstaltung in C#aufzubringen, und eine Abonnentenklasse ist auch für den Empfang und die Behandlung einer Veranstaltung erforderlich. Die Veranstaltung wird mit Hilfe der Verlagsklasse veröffentlicht. Die Abonnentenklasse ist eine zusätzliche Klasse, die solche Ereignisse verarbeitet. Ein Publisher-Subscriber-Paradigma wird für Ereignisse in C# verwendet. Im Allgemeinen wird die Klasse, die das Ereignis sendet.

Syntax der Erklärung des Ereignisses in C# in Ubuntu 20.04

Eine Funktion oder Methode -Syntax ist für die Programmierung wichtig, und wir haben eine einfache Syntax für die Ereignishandlerfunktion lautet wie folgt:

Öffentlicher Delegierter void delegateHandler (); // delegieren

Erstens muss der Ereignisart des Delegierten angegeben werden, bevor das Ereignis in der Klasse deklariert werden kann.

Öffentliche Veranstaltung void DelegateHandler EventHandler (); // Fall

Der vorhergehende Code erstellt einen "DelegateHandler" mithilfe des Schlüsselwort -Delegiertens und eines "EventHandler". Beachten Sie, dass nur in der Klasse, in der das Ereignis deklariert wurde, verwendet werden kann, um es aufzurufen.

So deklarieren Sie die Ereignisse in C# in Ubuntu 20.04

Um zu verstehen, wie der Delegierte und Event-Handler in C#funktioniert, sollten wir praktische Programme haben. Diese Beispiele sind in Ubuntu 20 implementiert.04 Durch Verwendung eines Mono -Compilers für C#.

Beispiel 1: Programm der Verwendung von Delegierten in C # in Ubuntu 20.04

Das Beispiel erklärt lediglich den Delegierten und auch eine Delegiervariable mit dem Ereignis -Schlüsselwort. Wir haben eine Veranstaltung für den folgenden Code in der Verlagsklasse deklariert.

Wir haben die Systembibliothek von C# als „Verwenden des Systems“ importiert, mit dem wir die Klassen und Funktionen wie die Konsolenklasse und die Writeline -Funktion einbeziehen können. Der Namespace erhält den Namen "MyApp", der unseren Code identifiziert und zusammenfasst. Der Delegierte wird hier als "Del" der Typ -Zeichenfolge definiert und gibt "Str" der String als Parameter geleitet. Danach wird die Publisher -Klasse als "EventExample" erstellt. In der Publisher -Klasse haben wir einen Delegierten "Del" und den "Ereignis" -Modifikator deklariert, haben wir ein Ereignis für den Typ -Delegierten "Del" deklariert, das ein Ereignis deklariert hat.Dann haben wir "EventExample" bezeichnet und ein Objekt "This" erstellt.Fall".

Das Objekt wird mit dem Delegierten „Del“ initialisiert, indem ein neues Schlüsselwort verwendet und ein anderes Objekt „dies übergeht.Hellouser “dazu. Wir haben "Hellouser" als String -Typ genannt, der mit einem neuen Objekt "MyUser" als Parameter bestanden hat. Die Rückgabeerklärung gibt den Wert von MyUser zusammen mit der Zeichenfolge "Hallo" zurück. Die Void Main hat die Publisher -Klasse "EventExample" angerufen, bei der wir "MyUser" im "OBJ" einen Wert zugewiesen haben. Fall". Der „obj. Ereignis ”wird für die" Ergebnis "-Variable initialisiert, die wir in der Konsole bestanden haben.Writeline -Methode zur Anzeige.

Die Ausgabe der obigen Programmausführung wird auf dem Konsolenbildschirm angezeigt.

Beispiel Nr. 2: Programm des Verzehrs einer Veranstaltung in C # in Ubuntu 20.04

Die Abonnentenklasse muss sich für das Ereignis registrieren und mit der Methode verarbeiten, deren Deklaration mit dem Delegierten übereinstimmt, wie im folgenden Programm gezeigt.

Die Veranstaltung „MyProcessCompleted“ ist der Klasse „MyProgram“ abonniert. Es verwendet den Bediener "+=", um sich beim Ereignis zu registrieren. Denken Sie daran, dass wir der aufgerufenen Liste des Multicast -Delegiertens auf die gleiche Weise Methoden hinzufügen können. Das Ereignis wird hier mit der Methode „P1_MYPROCESSCOMPLETED ()“ behandelt, die der Deklaration vom Typ "Notifier" und der Konsole entspricht. Die Writeline -Methode wird aufgerufen, um die bestimmte Nachricht zu drucken. Die OnprocessCompletEd () -Methode wird am Ende der StartProcess () -Methode aufgerufen, die ein Ereignis erhöht.

Dann wird der Ereignisname „OnprocessCompleted“ aufgerufen und mit der geschützten virtuellen Methode definiert. Die On -ProcessCompleted () -Methode verwendet ProcessCompleted. Aufrufen () den Delegierten anzurufen. Dies überprüft zunächst, dass das Ereignis „MyProcessCompleted“ nicht null sein sollte und dann den Delegierten "Notifier" nennt.

Bei der Ausführung des Overhead -Code.

Beispiel Nr. 3: Programm zum Übergeben von Daten in integrierten EventHandlerDelegate in C # in Ubuntu 20.04

Die meisten Ereignisse senden Daten an ihre Abonnenten. Die EventArgs -Klasse dient als Grundlage für alle Ereignisdatenklassen. Um die Daten an den Handler weiterzuleiten, verwenden wir EventHandler. Der Code ist unten dargestellt.

Hier haben wir eine Klasse namens "EventHandlerProgram". In der Klasse haben wir eine void -Hauptfunktion, die ein Objekt „EventHandlerProcess“ als P1 hat. Das Objekt wird mit dem neuen Schlüsselwort initialisiert und vom EventHandlerProcess () aufgerufen. Das P1_ProcessCompleted ist hier als Ereignis registriert, indem der Operator „+=“ verwendet wird. Am Ende der Leere Main wird die Funktion startProcess () auch für die On -Process -Completed -Methode aufgerufen, die ein Ereignis erhöht. Anschließend haben wir einen Ereignishandler "p1_processcompleted", in dem wir ein Objekt als "Quelle" übergeben haben und Bool als "issuccessful" eingeben.

Die KonsoleWriteLine druckt die boolesche Erklärung aus. Die Klasse "EventHandler" wird erstellt, in der wir einen integrierten EventHandler für eine Veranstaltung haben. Außerdem haben wir die StartProcess-Methode mit einem Try-Catch-Block für die Ausnahmebehandlung aufgerufen, wenn es auftritt. Die „OnprocessCompleted“ wird mit der geschützten virtuellen Methode aufgerufen. In der Funktion on ProcessCompleted () verwenden wir Invoke (), um ein Ereignis zu erhöhen. Wir haben „dies“ als Absender und Bool als „issuccessful“ angegeben. Beachten Sie, dass den Handlern einen einzelnen Bool -Wert erhalten, der angibt, ob der Prozess erfolgreich ist oder fehlgeschlagen ist.

Die Ausgabe der Zusammenstellung des Codes ist im folgenden Bild angezeigt.

Beispiel Nr. 4: Programm zur Erklärung und Erhebung von Ereignissen in C # in Ubuntu 20.04

Das Folgende ist ein Beispiel, in dem wir ein Ereignis in der C# -Pergrammensprache unter Verwendung des Kerndelegierten -Typs deklarieren und anbringen müssen.

Im obigen Beispiel haben wir eine Klasse „Arithmeticoperations“ als Publisher -Klasse, in der wir die erforderliche Funktionalität durchgeführt haben, die überprüft, ob die aufgerufene Klasse das Ereignis abonniert hat oder nicht. Der Delegierte wird in der Verlagsklasse als Delegierter erklärt und die Veranstaltung wird als „Myevent“ deklariert. Die Leere addiert "x1" und "y1" als Parameterwerte. Im Leerraum-Add-Block haben wir einen Delegierten über die IF-ELSE-Anweisung zur Überprüfung des Abonnements angerufen. Das Ereignis „Myevent“ wird in der IF-ELSE-Anweisung erhoben und druckt die Nachricht über die Writeline-Methode. Dann haben wir die Abonnentenklasse als Operationen mit den erforderlichen Methoden. Wir haben den += Operator in der Operations -Klasse verwendet, um das Ereignis „Myevent“ zu abonnieren und einen Handler als „MyeventHandler“ für die Ausführung der entsprechenden Operationen zu bezeichnen. Die Handler -Methode "MyeventHandler" in der Operations -Klasse hat die gleiche Implementierung wie in der Delegiertenmethode "Delegierter" in der Klasse "Arithmeticoperations".

Sie können die Ausgabe des grundlegenden arithmetischen Betriebs per Event -Handler in C# unten sehen.

Abschluss

Wir haben das C# -Vereignis zutiefst durchgemacht, indem wir diskutiert haben, was die Ereignisse in C# sind und die grundlegende Syntax, die wir in der Programmierung implementieren. Wir haben auch das Beispiel von Ereignis- und Ereignishandlern ausgeführt, indem wir zeigen, wie einfache Ereignisse erstellen, ein Ereignis angehoben werden und ein Ereignis abonniert werden. Dies sind sehr grundlegende Beispiele, die Ihnen helfen könnten, klar zu verstehen.