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.