Esercizi C#

Il modello editore e abbonato degli eventi in C#

In questa lezione avviserai gli oggetti registrati ogni volta che lo stato di un ordine cambia, usando gli eventi.

Introduzione

Gli eventi permettono a chi sta fuori di registrarsi per ricevere avvisi, ma solo la classe proprietaria dell'evento ha il permesso di lanciarlo. È così che si implementa in modo sicuro il modello editore e abbonato in C#.

La classe Order dichiara l'evento StatusChanged con il tipo EventHandler<string>, cioè porta con sé una stringa con il nuovo stato. In Main, una lambda si registra per stampare lo stato sullo schermo. Quando viene chiamato Update("Shipped"), l'operatore ?. lancia l'evento solo se ci sono abbonati, quindi il programma stampa Shipped.

Esempio C# eseguibile

C#
Esegui il codice →
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");
    }
}
Risultato dell'esecuzione
Shipped

Esercitati con il debugger

Metti un breakpoint su un'assegnazione o una condizione importante, fai clic su Debug ed esamina i valori locali prima di passare alla riga successiva.

Esercitati con una sfida

Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.

Tutte le sfide