Predicate 是.NET类库从3.0开始新增的内置委托,用于实现返回类型为bool型的函数的调用。以下示例定义了一个Predicate,在使用已经有函数 IsAdult(int) 赋值后,再进行调用。
public override void Test() { Predicate<int> fun = Show; if(!fun(20)) { Console.WriteLine("未成年"); } } public void IsAdult(int age) { return age > 18; }Predicate类代表的函数是用于返回 bool 型的函数。由于在系统中有大量的判断,所以bool型的使用非常普遍。因此,微软专门定义了这个类。主要要求如下:
返回类型必需为bool,即逻辑判断型。参数列表类型不限制,长度最多为16。以下是Predicate类 的定义原型。
public delegate bool Predicate<T1>(T1 t1); public delegate bool Predicate<T1, T2>(T1 t1, T2 t2); ... public delegate bool Predicate<in T1,in T2,in T3,in T4,in T5,in T6,in T7,in T8,in T9,in T10,in T11,in T12,in T13,in T14,in T15,in T16>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16);本文简单介绍了Predicate类,用于对返回类型为bool的函数进行委托调用。