Ejercicios de C#

El modelo de publicador y suscriptor con eventos en C#

En esta lección vas a avisar a los objetos suscritos cada vez que cambia el estado de un pedido, usando eventos.

Introducción

Los eventos permiten que desde fuera alguien se suscriba para recibir notificaciones, pero solo la clase que tiene el evento puede lanzarlo. Es la forma segura de implementar el modelo de publicador y suscriptor en C#.

La clase Order declara el evento StatusChanged de tipo EventHandler<string>, es decir, acompañado de una cadena que describe el nuevo estado. En Main, una lambda se suscribe para mostrar el estado en pantalla. Cuando se llama a Update("Shipped"), el operador ?. solo lanza el evento si hay suscriptores, así que el programa muestra Shipped.

Ejemplo de C# ejecutable

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

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