Sobes.tech
Junior — Middle

Podes nomear os principais tipos de delegados utilizados na linguagem de programação?

sobes.tech IA

Resposta da IA

Na linguagem C#, os delegados são tipos que representam referências a métodos com uma assinatura específica. Os principais tipos de delegados:

  • Delegados de destino único (Single-cast delegates) — referenciam um único método.
  • Delegados multicast (Multicast delegates) — podem conter uma lista de métodos que são chamados sequencialmente.

Além disso, existem delegados genéricos padrão:

  • Action — um delegado que representa um método sem valor de retorno e com 0 ou mais parâmetros.
  • Func<TResult> e Func<T1, TResult> e outros — delegados que retornam um valor e podem aceitar parâmetros.
  • Predicate<T> — um delegado que aceita um parâmetro e retorna um bool.

Exemplo de declaração e uso de um delegado:

public delegate int Operation(int x, int y);

Operation add = (a, b) => a + b;
int result = add(3, 4); // 7

Delegado multicast:

Operation op = add;
op += (a, b) => a * b;

foreach (Operation del in op.GetInvocationList()) {
    Console.WriteLine(del(3, 4));
}

Assim, os principais tipos de delegados são: de destino único, multicast, bem como os delegados genéricos padrão Action, Func e Predicate.