Sobes.tech
Junior

Quali delegati conosci?

sobes.tech AI

Risposta dell'AI

I principali tipi di delegati in .NET:

  • System.Delegate (classe astratta di base) — la base per tutti i delegati.
  • System.MulticastDelegate (eredita da Delegate) — consente a un delegato di contenere più metodi.
  • Delegati generici in .NET Framework 3.5+:
    • Action — delegato senza valore di ritorno (void).
    • Action<T> ... Action<T1, T2, T3, T4> — delegati con uno a quattro parametri e senza valore di ritorno.
    • Func<TResult> — delegato con valore di ritorno del tipo TResult e senza parametri.
    • Func<T, TResult> ... Func<T1, T2, T3, T4, TResult> — delegati con uno a quattro parametri e valore di ritorno del tipo TResult.
    • Predicate<T> — tipo speciale Func<T, bool>, che rappresenta un metodo che definisce un insieme di criteri e determina se un oggetto dato soddisfa tali criteri.

Esempio di utilizzo di Action e Func:

// Delegato Action: accetta un int, non restituisce nulla
Action<int> printNumber = (num) => Console.WriteLine(num);
printNumber(10); // Stampa 10

// Delegato Func: accetta due int, restituisce un int
Func<int, int, int> addNumbers = (a, b) => a + b;
int result = addNumbers(5, 3); // risultato = 8

I delegati sono anche usati negli eventi (event).