ExpertiDict

C# · Intermediário · Inglês · Técnico

event

/ɪˈvɛnt/palavra-chave

Membro que expõe uma notificação baseada em delegate: outros objetos se inscrevem com += e -=, mas só o dono do evento pode dispará-lo.

Onde usar

É o padrão publish/subscribe do C#; botões de UI, FileSystemWatcher e INotifyPropertyChanged usam eventos. O erro clássico é esquecer o -= e manter o assinante vivo, causando vazamento de memória.

Em código

var c = new Contador();
c.Mudou += () => Console.WriteLine("mudou");
c.Inc();
class Contador {
  public event Action? Mudou;
  public void Inc() => Mudou?.Invoke();
}

Exemplos

Subscribe to the event and don't forget to unsubscribe.

Inscreva-se no evento e não esqueça de cancelar a inscrição.

Only the class that declares the event can raise it.

Só a classe que declara o evento pode dispará-lo.

Cuidado

Não dispare o evento sem checar null: use Mudou?.Invoke(...) para evitar NullReferenceException quando ninguém se inscreveu.

Sinônimos

evento

Veja também

Todos os termos de C#