C#-Übungen

Das Herausgeber-Abonnenten-Modell mit Ereignissen in C#

In dieser Lektion benachrichtigst du mit Ereignissen die angemeldeten Objekte, sobald sich der Status einer Bestellung ändert.

Einführung

Mit Ereignissen können sich Objekte von außen für Benachrichtigungen anmelden, auslösen darf das Ereignis aber nur die Klasse, der es gehört. So setzt man das Modell aus Herausgeber und Abonnent in C# sicher um.

Die Klasse Order deklariert das Ereignis StatusChanged vom Typ EventHandler<string>, es überträgt also einen String mit dem neuen Status. In Main meldet sich ein Lambda an, das den Status auf dem Bildschirm ausgibt. Wird Update("Shipped") aufgerufen, löst der Operator ?. das Ereignis nur aus, wenn es Abonnenten gibt, deshalb gibt das Programm Shipped aus.

Ausführbares C#-Beispiel

C#
Code ausführen →
Program.cs
using System;
class Order
{
    public event EventHandler<string>? StatusChanged;
    public void Update(string status) => StatusChanged?.Invoke(this, status);
}
class Program
{
    static void Main()
    {
        var order = new Order();
        order.StatusChanged += (_, status) => Console.WriteLine(status);
        order.Update("Shipped");
    }
}
Ergebnis der Ausführung
Shipped

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