Sobes.tech
Junior — Middle

Explique o que é um multicast delegate e como ele funciona no contexto dos delegates .NET?

sobes.tech IA

Resposta da IA

O delegado multicast em .NET é um delegado que pode armazenar referências a vários métodos e chamá-los sequencialmente ao invocar o delegado.

Quando adiciona vários métodos a um delegado (através do operador +=), é criada uma cadeia de chamadas. Ao invocar esse delegado, todos os métodos dessa cadeia serão chamados na ordem.

Exemplo:

public delegate void Notify(string message);

Notify notifyHandlers = null;

void Handler1(string msg) => Console.WriteLine("Handler1: " + msg);
void Handler2(string msg) => Console.WriteLine("Handler2: " + msg);

notifyHandlers += Handler1;
notifyHandlers += Handler2;

notifyHandlers("Olá");

A saída será:

Handler1: Olá
Handler2: Olá

Dessa forma, os delegates multicast são úteis para implementar eventos e callbacks, quando é necessário notificar vários assinantes.