使用谓词而不是普通委托有什么价值吗?以下面的例子,我没有看到任何.
Predicate<int> isEven = delegate(int x) { return x % 2 == 0; };
Console.WriteLine(isEven(1) + "\r\r");
Func<int, bool> isEven2 = delegate(int x) { return x % 2 == 0; };
Console.WriteLine(isEven(1) + "\r\r");
Run Code Online (Sandbox Code Playgroud)
他们实际上是一样的.Predicate<T>是一个委托类型,已添加到基类库中,用于列表和数组Find()方法.这是在LINQ之前,当时更普遍Func的代表家庭被引入.您甚至可以编写自己的委托类型并使用它:
delegate bool IntPredicate(int x);
static void Main()
{
IntPredicate isEven = delegate(int x) {return x % 2 == 0;};
Console.WriteLine(isEven(1) + "\r\r");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1572 次 |
| 最近记录: |