Sobes.tech
Junior

Koje delegate poznaješ?

sobes.tech АИ

Одговор од АИ

Glavne vrste delegata u .NET:

  • System.Delegate (apstraktna osnovna klasa) — osnova za sve delegatne tipove.
  • System.MulticastDelegate (nasleđuje od Delegate) — omogućava delegatu da sadrži više metoda.
  • Generički delegati u .NET Framework 3.5+:
    • Action — delegat bez povratne vrednosti (void).
    • Action<T> ... Action<T1, T2, T3, T4> — delegati sa jednim do četiri parametra i bez povratne vrednosti.
    • Func<TResult> — delegat sa povratnom vrednošću tipa TResult i bez parametara.
    • Func<T, TResult> ... Func<T1, T2, T3, T4, TResult> — delegati sa jednim do četiri parametra i povratnom vrednošću tipa TResult.
    • Predicate<T> — poseban tip Func<T, bool>, koji predstavlja metodu koja definiše skup kriterijuma i određuje da li dati objekat ispunjava te kriterijume.

Primer korišćenja Action i Func:

// Delegat Action: prima int, ne vraća ništa
Action<int> printNumber = (num) => Console.WriteLine(num);
printNumber(10); // Ispisuje 10

// Delegat Func: prima dva int, vraća int
Func<int, int, int> addNumbers = (a, b) => a + b;
int result = addNumbers(5, 3); // rezultat = 8

Delegati se takođe koriste u događajima (event).