首页 > 编程笔记 > C#笔记 阅读:8

C# Predicate委托的用法(附带实例)

C# 中的 Predicate 委托类似 Func 和 Action 委托,不过这个方法的内容是一个标准,然后回传参数是否符合这个标准。

Predicate 委托必须有一个参数并且是 bool 数据类型。整个方法签名如下:
public delegate bool Predicate<in T>(T obj);

【实例 1】请设计传统 delegate 委托执行,检查输入字符串长度是否大于 10 个字符。
static bool myfun(string str)
{
    if (str.Length > 10)
    {
        return true;
    }
    else
    {
        return false;
    }
}

Console.Write("请输入任意字符串:");
string mystr = Console.ReadLine();    // 读取字符串
my_delegate strObj = myfun;           // 声明委托对象与指定方法
Console.WriteLine($"字符串长度大于 10:{strObj(mystr)}");

public delegate bool my_delegate(string mystring);
执行结果为:
请输入任意字符串:C#
字符串长度大于 10:False

再次执行程序:
请输入任意字符串:I love C# very much
字符串长度大于 10:True

【实例 2】请使用 Predicate delegate 委托重新设计实例 1。
static bool myfun(string str)
{
    if (str.Length > 10)
    {
        return true;
    }
    else
    {
        return false;
    }
}

Console.Write("请输入任意字符串:");
string mystr = Console.ReadLine();               // 读取字符串
Predicate<string> strObj = myfun;                // 使用 Predicate 委托
Console.WriteLine($"字符串长度大于 10:{strObj(mystr)}");
执行结果与实例 1 相同。

相关文章