Junior — Middle
Kā atšķirt Predicate tipa deleģētu no Func tipa deleģēta, un kādas ir to galvenās atšķirības?
sobes.tech AI
Atbilde no AI
Galvenā atšķirība starp delegātiem Predicate un Func C# ir to parakstos un mērķis:
-
Predicate<T> — tas ir delegāts, kas pieņem vienu parametru no T tipa un atgriež bool. To izmanto nosacījuma (predikāta) pārbaudei objektā.
-
Func<T, TResult> — tas ir vispārējs delegāts, kas pieņem T tipa parametru un atgriež TResult tipu. Func ir daudzpusīgāks, jo TResult var būt jebkura tips.
Ja Func atgriež bool un pieņem vienu parametru, tas ir funkcionāli līdzvērtīgs Predicate.
Piemērs:
Predicate<int> isPositive = x => x > 0;
Func<int, bool> isPositiveFunc = x => x > 0;
bool result1 = isPositive(5); // true
bool result2 = isPositiveFunc(5); // true
Tādējādi, Predicate ir specializēts delegāts nosacījumiem, bet Func ir universāls delegāts funkcijām ar atgriešanas vērtību.