Junior — Middle
Predicate turidagi delegatni qanday ajratish mumkin va ularning asosiy farqlari nima?
sobes.tech AI
AIdan javob
C# da Predicate va Func delegatlari orasidagi asosiy farq ularning imzolari va maqsadlarida:
-
Predicate<T> — bu T turidagi parametrni qabul qiladigan va bool qiymat qaytaradigan delegat. Ob'ekt ustida shart (predikat) tekshirish uchun ishlatiladi.
-
Func<T, TResult> — bu umumiy delegat bo'lib, T turidagi parametrni qabul qiladi va TResult turidagi qiymatni qaytaradi. Func ko'proq moslashuvchan, chunki TResult har qanday tur bo'lishi mumkin.
Agar Func bool qaytaradigan va bitta parametr oladigan bo'lsa, u Predicate bilan funksional jihatdan tengdir.
Misol:
Predicate<int> isPositive = x => x > 0;
Func<int, bool> isPositiveFunc = x => x > 0;
bool result1 = isPositive(5); // true
bool result2 = isPositiveFunc(5); // true
Shunday qilib, Predicate shartlar uchun maxsus delegat bo'lsa, Func qiymat qaytaradigan funksiyalar uchun universal delegatdir.