Sobes.tech
Junior

Kokius delegatus žinai?

sobes.tech AI

Atsakymas iš AI

Pagrindiniai delegatų tipai .NET:

  • System.Delegate (abstrakti pagrindinis klasė) — pagrindas visiems delegatams.
  • System.MulticastDelegate (paveldi iš Delegate) — leidžia delegatui turėti kelis metodus.
  • Bendrieji delegatai .NET Framework 3.5+:
    • Action — delegatas be grąžinamosios reikšmės (void).
    • Action<T> ... Action<T1, T2, T3, T4> — delegatai su vienu iki keturių parametrų ir be grąžinamosios reikšmės.
    • Func<TResult> — delegatas su grąžinamosios reikšmės tipu TResult ir be parametrų.
    • Func<T, TResult> ... Func<T1, T2, T3, T4, TResult> — delegatai su vienu iki keturių parametrų ir grąžinamosios reikšmės tipu TResult.
    • Predicate<T> — specialus Func<T, bool> tipas, kuris apibrėžia metodą, nustatantį kriterijų rinkinį ir ar pateiktas objektas atitinka šiuos kriterijus.

Pavyzdys naudojant Action ir Func:

// Action delegatas: priima int, nieko negrąžina
Action<int> printNumber = (num) => Console.WriteLine(num);
printNumber(10); // Išveda 10

// Func delegatas: priima du int, grąžina int
Func<int, int, int> addNumbers = (a, b) => a + b;
int result = addNumbers(5, 3); // rezultatas = 8

Delegatai taip pat naudojami įvykiuose (event).