Temas importantes de C#

Los eventos (events) en C#

En esta lección vas a declarar un evento, suscribir un manejador y lanzar el evento cuando se produce un cambio.

Introducción

Un evento (event) permite que un objeto avise a otros objetos cuando ocurre algo, según el modelo de publicador y suscriptor (publisher/subscriber). Es un mecanismo habitual en la programación de interfaces, por ejemplo cuando el usuario hace clic en un botón.

La clase Counter declara el evento ThresholdReached. En Main, el operador += suscribe una lambda para manejar el evento. Cuando se llama a ReachThreshold(), el operador ?. solo lanza el evento si hay al menos un suscriptor. Desde fuera solo se puede suscribir o cancelar la suscripción: solo la clase Counter puede lanzar el evento.

Ejemplo de C# ejecutable

C#
Ejecutar código →
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();
    }
}
Resultado de la ejecución
Threshold reached

Practica con el depurador

Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos