C# - Predicate 委托
Predicate
是像 Func 和 Action 委托一样的委托。它表示一个包含一组条件的方法,并检查传递的参数是否符合这些条件。一个 Predicate 委托方法必须接受一个输入参数并返回一个布尔值 - true 或 false。
Predicate
委托定义在 System
命名空间中,如下所示
Predicate 签名: public delegate bool Predicate<in T>(T obj);
与其他委托类型一样,Predicate
也可以用于任何方法、匿名方法或 Lambda 表达式。
示例: Predicate 委托
static bool IsUpperCase(string str)
{
return str.Equals(str.ToUpper());
}
static void Main(string[] args)
{
Predicate<string> isUpper = IsUpperCase;
bool result = isUpper("hello world!!");
Console.WriteLine(result);
}
输出
false匿名方法也可以分配给 Predicate 委托类型,如下所示。
示例: 带匿名方法的 Predicate 委托
static void Main(string[] args)
{
Predicate<string> isUpper = delegate(string s) { return s.Equals(s.ToUpper());};
bool result = isUpper("hello world!!");
}
Lambda 表达式也可以分配给 Predicate 委托类型,如下所示。
示例: 带 Lambda 表达式的 Predicate 委托
static void Main(string[] args)
{
Predicate<string> isUpper = s => s.Equals(s.ToUpper());
bool result = isUpper("hello world!!");
}