Eventos (events) em C#
Nesta lição, você vai declarar um evento, inscrever um tratador e disparar o evento quando algo mudar.
Introdução
Um evento (event) permite que um objeto avise outros objetos quando algo acontece, no modelo de publicador e assinante (publisher/subscriber). É um mecanismo muito comum em interfaces gráficas, por exemplo quando o usuário clica em um botão.
A classe Counter declara o evento ThresholdReached. Em Main, o operador += inscreve uma lambda para tratar o evento. Quando ReachThreshold() é chamado, o operador ?. só dispara o evento se houver pelo menos um inscrito. De fora, só é possível se inscrever ou cancelar a inscrição; disparar o evento é algo que só a classe Counter pode fazer.
Exemplo de C# executável
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();
}
}
Threshold reachedPratique com o depurador
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
Todos os desafios