C# · Intermediário · Inglês · Técnico
delegate
Tipo que representa uma referência segura a um método com certa assinatura; permite passar comportamento como argumento e é a base de eventos e lambdas.
Onde usar
Aparece em callbacks, LINQ e injeção de comportamento; na prática usamos Func, Action e Predicate em vez de declarar delegates próprios. Delegates são multicast: invocar chama todos os métodos adicionados.
Em código
Op soma = (a, b) => a + b;
Console.WriteLine(soma(2, 3)); // 5
delegate int Op(int a, int b);Exemplos
Pass a delegate so the caller decides the behavior.
Passe um delegate para o chamador decidir o comportamento.
A multicast delegate invokes every subscribed method.
Um delegate multicast invoca todos os métodos inscritos.
Cuidado
Não confunda delegate com event: o delegate pode ser invocado e substituído por qualquer um que o acesse, enquanto o event restringe isso ao dono.
Sinônimos
ponteiro de função seguro