ExpertiDict

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

delegate

/ˈdɛlɪɡət/substantivo

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

Veja também

Todos os termos de C#