Sobes.tech
Junior — Middle

Predicate türündeki delege ile Func türündeki delegeyi nasıl ayırt ederiz ve temel farkları nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

C# dilinde Predicate ve Func delegatları arasındaki temel farklar, imzaları ve amaçlarıyla ilgilidir:

  • Predicate<T> — T tipi bir parametre alan ve bool döndüren bir delegattır. Bir nesne üzerindeki koşulu (öngörü) kontrol etmek için kullanılır.

  • Func<T, TResult> — T tipi bir parametre alan ve TResult türünde bir değer döndüren genel bir delegattır. Func, TResult herhangi bir tür olabildiği için daha esnektir.

Eğer Func, bool döndürüyorsa ve tek bir parametre alıyorsa, Predicate ile fonksiyonel olarak aynıdır.

Örnek:

Predicate<int> isPositive = x => x > 0;
Func<int, bool> isPositiveFunc = x => x > 0;

bool result1 = isPositive(5);       // true
bool result2 = isPositiveFunc(5);   // true

Bu nedenle, Predicate koşullar için özelleştirilmiş bir delegat iken, Func dönüş değeri olan fonksiyonlar için evrensel bir delegattır.