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 相同。