猿教程 Logo

C# predicate委托

predicate也是一个委托,如Func和Action委托。 它表示一个包含一组条件的方法,并检查所传递的参数是否满足这些条件。 predicate委托方法必须具有一个输入参数,然后返回布尔值 - true或false。

Predicate委托在System命名空间中定义,如下所示:

predicate签名:public delegate bool Predicate <in T>(T obj);

与其他委托类型相同,Predicate也可以与任何方法,匿名方法或lambda表达式一起使用。

相关实例:

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委托类型,如下所示。

相关实例:

static void Main(string[] args)
{
    Predicate<string> isUpper = delegate(string s) { return s.Equals(s.ToUpper());};
    bool result = isUpper("hello world!!");
}

lambda表达式也可以分配给predicate委托类型,如下所示。

相关实例:

static void Main(string[] args)
{
    Predicate<string> isUpper = s => s.Equals(s.ToUpper());
    bool result = isUpper("hello world!!");
}
要点

predicate委托需要一个输入参数和布尔返回类型。 

predicate委托必须包含一些criateria以检查提供的参数是否满足那些criateria。 

匿名方法和Lambda表达式可以分配给predicate委托。


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/CSharp/csharp-Predicate-delegate.html