Wichtige C#-Themen

Ereignisse (events) in C#

In dieser Lektion deklarierst du ein Ereignis, meldest einen Handler an und löst das Ereignis bei einer Änderung aus.

Einführung

Ein Ereignis (event) erlaubt einem Objekt, andere Objekte zu benachrichtigen, wenn etwas passiert, nach dem Modell Herausgeber und Abonnent (publisher/subscriber). Das ist in der Oberflächenprogrammierung ein vertrauter Mechanismus, etwa wenn der Benutzer auf eine Schaltfläche klickt.

Die Klasse Counter deklariert das Ereignis ThresholdReached. In Main meldet der Operator += ein Lambda als Handler für das Ereignis an. Wird ReachThreshold() aufgerufen, löst der Operator ?. das Ereignis nur aus, wenn mindestens ein Abonnent angemeldet ist. Von außen kann man sich nur an- oder abmelden, das Auslösen des Ereignisses ist der Klasse Counter vorbehalten.

Ausführbares C#-Beispiel

C#
Code ausführen →
Program.cs
using System;

class Counter
{
    public event EventHandler? ThresholdReached;
    public void ReachThreshold() => ThresholdReached?.Invoke(this, EventArgs.Empty);
}

class Program
{
    static void Main()
    {
        var counter = new Counter();
        counter.ThresholdReached += (_, _) => Console.WriteLine("Threshold reached");
        counter.ReachThreshold();
    }
}
Ergebnis der Ausführung
Threshold reached

Mit dem Debugger üben

Setze einen Haltepunkt auf eine wichtige Zuweisung oder Bedingung, klicke auf Debug und sieh dir die lokalen Werte an, bevor du zur nächsten Zeile gehst.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges