Cześć,
mam pytanie dotyczące używania wyrażeń Lambda razem z LINQ, a w zasadzie chodzi mi o podpowiedzi z visuala:
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
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 toPredicate<Student>
? Chodzi tylko o to żeby pokazać, żeFunc
zwracabool
? Przecież jest wiadomym, żePredicate
zwracatrue
lubfalse
.
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 :)