Predicate czy Func?

Predicate czy Func?
DU
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
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.

PP
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:33
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>.

somekind
Można przecież zrobić jedno przeciążenie z Func, a drugie z Predicate.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:5 dni
  • Lokalizacja:Wrocław
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.

DU
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
0

Ok, dzięki za wyjaśnienie :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.