Sobes.tech
Junior

Кои делегати познаваш?

sobes.tech AI

Отговор от AI

Основни типове делегати в .NET:

  • System.Delegate (абстрактен базов клас) — основа за всички делегати.
  • System.MulticastDelegate (наследява от Delegate) — позволява делегатът да съдържа няколко метода.
  • Обобщени делегати в .NET Framework 3.5+:
    • Action — делегат без стойност за връщане (void).
    • Action<T> ... Action<T1, T2, T3, T4> — делегати с един до четири параметъра и без стойност за връщане.
    • Func<TResult> — делегат с връщана стойност от тип TResult и без параметри.
    • Func<T, TResult> ... Func<T1, T2, T3, T4, TResult> — делегати с един до четири параметъра и връщана стойност от тип TResult.
    • Predicate<T> — специален тип Func<T, bool>, който представлява метод, който определя набор от критерии и определя дали даден обект отговаря на тези критерии.

Пример за използване на Action и Func:

// Делегат Action: приема int, не връща нищо
Action<int> printNumber = (num) => Console.WriteLine(num);
printNumber(10); // Ще изведе 10

// Делегат Func: приема две int, връща int
Func<int, int, int> addNumbers = (a, b) => a + b;
int result = addNumbers(5, 3); // резултат = 8

Делегатите също се използват в събития (event).