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 tipuTResultir be parametrų.Func<T, TResult>...Func<T1, T2, T3, T4, TResult>— delegatai su vienu iki keturių parametrų ir grąžinamosios reikšmės tipuTResult.Predicate<T>— specialusFunc<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).