C# Predicate委托的用法(附带实例)
C# 中的 Predicate 委托类似 Func 和 Action 委托,不过这个方法的内容是一个标准,然后回传参数是否符合这个标准。
Predicate 委托必须有一个参数并且是 bool 数据类型。整个方法签名如下:
【实例 1】请设计传统 delegate 委托执行,检查输入字符串长度是否大于 10 个字符。
再次执行程序:
【实例 2】请使用 Predicate delegate 委托重新设计实例 1。
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 相同。
ICP备案:
公安联网备案: