Junior — Middle
Чӣ гуна метавон делегати навъи Predicate-ро аз делегати навъи Func фарқ кард ва асосии фарқиятҳои онҳо чист?
sobes.tech AI
Ҷавоб аз AI
Асосӣ фарқияти байни делегатҳои Predicate ва Func дар C# дар имзоҳо ва мақсадҳои онҳо аст:
-
Predicate<T> — делегатест, ки як параметри навъи T мегирад ва bool бармегардонад. Барои санҷиши шароит (предикат) дар объект истифода мешавад.
-
Func<T, TResult> — делегати умумӣ, ки як параметри навъи T мегирад ва арзиши навъи TResult бармегардонад. Func бештар чандир аст, зеро TResult метавонад ҳар гуна навъ бошад.
Агар Func bool баргардонад ва як параметр қабул кунад, функсионалӣ баробар бо Predicate аст.
Масалан:
Predicate<int> isPositive = x => x > 0;
Func<int, bool> isPositiveFunc = x => x > 0;
ҳолати натиҷа = isPositive(5); // true
ҳолати натиҷа = isPositiveFunc(5); // true
Аз ин рӯ, Predicate махсусгардоштаи делегат барои шартҳо аст, ва Func делегати умуми барои функсияҳо бо арзиши баргардон.