Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C# - Ereignisse

Veranstaltungen sind Benutzeraktionen wie Tastendruck, Klicks, Mausbewegungen usw. oder einige Vorkommnisse wie vom System generierte Benachrichtigungen. Anwendungen müssen auf Ereignisse reagieren, wenn sie auftreten. Zum Beispiel Interrupts. Ereignisse werden für die Kommunikation zwischen Prozessen verwendet.

Delegierte mit Ereignissen verwenden

Die Ereignisse werden in einer Klasse deklariert und ausgelöst und den Ereignishandlern zugeordnet, indem Delegaten innerhalb derselben Klasse oder einer anderen Klasse verwendet werden. Die Klasse, die das Ereignis enthält, wird zum Veröffentlichen des Ereignisses verwendet. Dies wird als Publisher bezeichnet Klasse. Eine andere Klasse, die dieses Ereignis akzeptiert, wird als Abonnent bezeichnet Klasse. Ereignisse verwenden den Publisher-Subscriber Modell.

Ein Verlag ist ein Objekt, das die Definition des Ereignisses und des Delegaten enthält. Die Ereignis-Delegat-Assoziation wird auch in diesem Objekt definiert. Ein Publisher-Klassenobjekt ruft das Ereignis auf und es wird anderen Objekten mitgeteilt.

Ein Abonnent ist ein Objekt, das das Ereignis akzeptiert und einen Ereignishandler bereitstellt. Der Delegat in der Publisher-Klasse ruft die Methode (Event-Handler) der Subscriber-Klasse auf.

Ereignisse deklarieren

Um ein Ereignis innerhalb einer Klasse zu deklarieren, müssen Sie zunächst einen Delegate-Typ für even deklarieren als:

public delegate string BoilerLogHandler(string str);

Deklarieren Sie dann das Ereignis mithilfe von event Schlüsselwort −

event BoilerLogHandler BoilerEventLog;

Der vorhergehende Code definiert einen Delegaten namens BoilerLogHandler und ein Ereignis namens BoilerEventLog , der den Delegaten aufruft, wenn er ausgelöst wird.

Beispiel

Live-Demo
using System;

namespace SampleApp {
   public delegate string MyDel(string str);
	
   class EventProgram {
      event MyDel MyEvent;
		
      public EventProgram() {
         this.MyEvent += new MyDel(this.WelcomeUser);
      }
      public string WelcomeUser(string username) {
         return "Welcome " + username;
      }
      static void Main(string[] args) {
         EventProgram obj1 = new EventProgram();
         string result = obj1.MyEvent("Tutorials Point");
         Console.WriteLine(result);
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis −

Welcome Tutorials Point

C Sprache

  1. C#-Klasse und -Objekt
  2. C#-Zugriffsmodifikatoren
  3. Statisches C#-Schlüsselwort
  4. Abstrakte C#-Klasse und -Methode
  5. Verschachtelte C#-Klasse
  6. C# Teilklasse und Teilmethode
  7. Versiegelte C#-Klasse und -Methode
  8. Polymorphismus in C++
  9. Datenabstraktion in C++
  10. Datenkapselung in C++