Argomenti C# importanti

Gli eventi (event) in C#

In questa lezione dichiarerai un evento, registrerai un gestore e lancerai l'evento quando qualcosa cambia.

Introduzione

Un evento (event) permette a un oggetto di avvisare altri oggetti quando succede qualcosa, secondo il modello editore e abbonato (publisher/subscriber). È un meccanismo molto comune nelle interfacce grafiche, per esempio quando l'utente preme un pulsante.

La classe Counter dichiara l'evento ThresholdReached. In Main, l'operatore += registra una lambda per gestire l'evento. Quando viene chiamato ReachThreshold(), l'operatore ?. lancia l'evento solo se c'è almeno un abbonato. Dall'esterno ci si può solo registrare o annullare la registrazione, mentre lanciare l'evento può farlo solo la classe Counter.

Esempio C# eseguibile

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

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