Sobes.tech
Junior

Que delegados conheces?

sobes.tech IA

Resposta da IA

Os principais tipos de delegados no .NET:

  • System.Delegate (classe abstrata base) — a base para todos os delegados.
  • System.MulticastDelegate (herda de Delegate) — permite que um delegado contenha vários métodos.
  • Delegados genéricos no .NET Framework 3.5+:
    • Action — delegado sem valor de retorno (void).
    • Action<T> ... Action<T1, T2, T3, T4> — delegados com um a quatro parâmetros e sem valor de retorno.
    • Func<TResult> — delegado com valor de retorno do tipo TResult e sem parâmetros.
    • Func<T, TResult> ... Func<T1, T2, T3, T4, TResult> — delegados com um a quatro parâmetros e valor de retorno do tipo TResult.
    • Predicate<T> — tipo especial Func<T, bool>, que representa um método que define um conjunto de critérios e determina se um objeto dado atende a esses critérios.

Exemplo de uso de Action e Func:

// Delegado Action: aceita um int, não retorna nada
Action<int> printNumber = (num) => Console.WriteLine(num);
printNumber(10); // Vai imprimir 10

// Delegado Func: aceita dois int, retorna um int
Func<int, int, int> addNumbers = (a, b) => a + b;
int result = addNumbers(5, 3); // result = 8

Delegados também são usados em eventos (event).