Junior — Middle
Hoe onderscheid je een delegate van het type Predicate van een delegate van het type Func, en wat zijn hun belangrijkste verschillen?
sobes.tech AI
Antwoord van AI
Het belangrijkste verschil tussen de delegates Predicate en Func in C# ligt in hun handtekeningen en doeleinden:
-
Predicate<T> — is een delegate die één parameter van type T accepteert en een bool retourneert. Wordt gebruikt om een voorwaarde (predicaat) op een object te controleren.
-
Func<T, TResult> — is een generieke delegate die een parameter van type T accepteert en een waarde van type TResult retourneert. Func is veelzijdiger, omdat TResult elk type kan zijn.
Als Func bool retourneert en één parameter accepteert, is het functioneel gelijk aan Predicate.
Voorbeeld:
Predicate<int> isPositive = x => x > 0;
Func<int, bool> isPositiveFunc = x => x > 0;
bool result1 = isPositive(5); // true
bool result2 = isPositiveFunc(5); // true
Dus, Predicate is een gespecialiseerde delegate voor voorwaarden, en Func is een universele delegate voor functies met een returnwaarde.