Junior — Middle
როგორ განვსაზღვროთ Predicate ტიპის დელეგატი Func ტიპის დელეგატთან და რა არის მათი ძირითადი განსხვავებები?
sobes.tech AI
პასუხი AI-სგან
C# dilində Predicate və Func delegatları arasındakı əsas fərq onların imzaları və məqsədləridir:
-
Predicate<T> — bu, T növündə bir parametr qəbul edən və bool dəyərini qaytaran delegatdır. Obiekt üzərində şərti (predikatı) yoxlamaq üçün istifadə olunur.
-
Func<T, TResult> — bu, ümumi delegatdır, T növündə parametr qəbul edir və TResult növündə dəyər qaytarır. Func daha çevikdir, çünki TResult hər hansı bir növ ola bilər.
Əgər Func bool qaytarırsa və tək parametr qəbul edirsə, o, Predicate ilə funksional olaraq eynidir.
Nümunə:
Predicate<int> isPositive = x => x > 0;
Func<int, bool> isPositiveFunc = x => x > 0;
bool result1 = isPositive(5); // true
bool result2 = isPositiveFunc(5); // true
Beləliklə, Predicate şərtlər üçün ixtisaslaşdırılmış delegatdır, və Func isə geri dönüş dəyəri olan funksiyalar üçün ümumi delegatdır.