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) истифода мешаванд.