Predicate delegate, .NET Framework tarafından tanımlanan özel bir bir delegate’dir. Predicate Delegate, Delegate yapısının bir generic tipidir. Bu delegate, System namespace’i altında bulunur. Bir dizi kriter içeren metotlarla çalışır ve parametrenin verilen kriterleri karşılayıp karşılamadığını belirler. (Geriye bool döner.) Yalnızca bir parametre alır ve değeri true veya false olarak döndürür.
Sözdizimi (Syntax):
public delegate bool Predicate <in P>(P obj);
Burada P, nesnenin tipidir ve obj, Predicate delegate tarafından temsil edilen metot içinde tanımlanan kriterlere göre karşılaştırılacak olan nesnedir.
Predicate Delegate Örnek Kullanım
using System;
internal class Program
{
// Metot
public static bool myFun(string myString)
{
if (myString.Length < 5)
{
return true;
}
else
{
return false;
}
}
public static void Main(String[] args)
{
// Predicate delegate tek bir parametre alır.
Predicate<string> val = myFun;
Console.WriteLine(val("alkanfatih"));
}
}
Sonuç:
False
Önemli Noktalar
Aşağıdaki örnekte gösterildiği gibi bir Predicate Delegate anonim bir metotla da kullanabilirsiniz:
public static void Main(String[] args)
{
Predicate<string> val1 = delegate (string str)
{
if (str.Length < 5)
{
return true;
}
else
{
return false;
};
};
Console.WriteLine(val1("alkanfatih1"));
}
Aşağıdaki örnekte gösterildiği gibi lambda ifadeleriyle bir Predicate Delegate de kullanabilirsiniz:
public static void Main(String[] args)
{
Predicate<string> val = str => str.Equals(str.ToLower());
Console.WriteLine(val("alkanfatih"));
}