Predicate czy Func?

0

Cześć,
mam pytanie dotyczące używania wyrażeń Lambda razem z LINQ, a w zasadzie chodzi mi o podpowiedzi z visuala:
title
Wyjaśni mi ktoś o co chodzi z Func<Student, bool> predicate? Dlaczego nie jest to Predicate<Student>? Chodzi tylko o to żeby pokazać, że Func zwraca bool? Przecież jest wiadomym, że Predicate zwraca true lub false .

0

Podczas projektowania LINQ brano też pod uwagę prostotę. LINQ korzysta z różnych wariantów Func zatem lepiej jest korzystać z niego w każdym przypadku niż robić wyjątki i stosować Predicate.

0

Pewnie dlatego, że funkcja Where jest przeciążona i pobiera wtedy delegacje Func<Student, int, bool> czego nie moglibyśmy zrobić za pomocą delegacji Predicate<Student>.

0
duzy napisał(a):

Wyjaśni mi ktoś o co chodzi z Func<Student, bool> predicate? Dlaczego nie jest to Predicate<Student>? Chodzi tylko o to żeby pokazać, że Func zwraca bool? Przecież jest wiadomym, że Predicate zwraca true lub false .

Predicate to staroć, a Func nowa rzecz dodana do .NET razem z LINQ. Wszystkie metody z LINQ korzytają z Funców, kwestia spójności.

0

Ok, dzięki za wyjaśnienie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1