Sobes.tech
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.