Sobes.tech
Junior

Qaysi vakillarni bilasiz?

sobes.tech AI

AIdan javob

.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ларда ҳам қўлланилади.