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

C# Events: Behandlung von Benutzeraktionen und Systembenachrichtigungen

Was sind Events in C#?

Events sind Benutzeraktionen wie Tastendruck, Klicks, Mausbewegungen usw. oder bestimmte Vorkommnisse wie systemgenerierte Benachrichtigungen. Anwendungen müssen auf Events reagieren, wenn diese auftreten – beispielsweise bei Interrupts. Events werden für die Kommunikation zwischen Prozessen verwendet.

Verwendung von Delegates mit Events

Events werden in einer Klasse deklariert und ausgelöst und mithilfe von Delegates mit Event-Handlern verknüpft – entweder innerhalb derselben Klasse oder einer anderen Klasse. Die Klasse, die das Event enthält, wird verwendet, um das Event zu veröffentlichen. Dies nennt man die Publisher-Klasse. Eine andere Klasse, die dieses Event akzeptiert, wird als Subscriber-Klasse bezeichnet. Events folgen dem Publisher-Subscriber-Modell.

Ein Publisher ist ein Objekt, das die Definition des Events und des Delegates enthält. Die Event-Delegate-Verknüpfung wird ebenfalls in diesem Objekt definiert. Ein Publisher-Klassenobjekt löst das Event aus, woraufhin andere Objekte benachrichtigt werden.

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

Deklaration von Events

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

public delegate string BoilerLogHandler(string str);

Anschließend deklarieren Sie das Event mithilfe des event-Schlüsselworts:

event BoilerLogHandler BoilerEventLog;

Der obige Code definiert einen Delegate namens BoilerLogHandler und ein Event namens BoilerEventLog, das den Delegate aufruft, wenn es ausgelöst wird.

Beispiel

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 folgendes Ergebnis:

Welcome Tutorials Point

C Sprache

  1. C# Klassen & Objekte: Fundamente für robustes OOP
  2. C# Zugriffsmodifizierer verstehen: Public, Private, Protected, Internal und mehr
  3. C# Static Keyword: Statische Variablen, Methoden und Klassen meistern
  4. C# Abstrakte Klassen & Methoden meistern: Praktischer Leitfaden
  5. C# Geschachtelte Klassen verstehen: Definition, Verwendung und Vererbung
  6. C# Partielle Klassen und Methoden verstehen
  7. Versiegelte Klassen und Methoden in C# meistern
  8. Polymorphie in C++: Praktischer Leitfaden
  9. Datenabstraktion in C++: Interface-Implementierung-Trennung
  10. Datenkapselung in C++: Code schützen & strukturieren