gpt4 book ai didi

c# - Predicate 相对于 Func 的优势?

转载 作者:太空狗 更新时间:2023-10-29 23:18:36 25 4
gpt4 key购买 nike

在普通委托(delegate)上使用谓词是否有任何值(value)?以下面的示例为例,我没有看到任何内容。

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");

最佳答案

它们实际上是一样的。 Predicate<T>是一种委托(delegate)类型,已添加到列表和数组 Find() 方法的基类库中。这是在 LINQ 之前,那时候更通用 Func介绍了委托(delegate)的家人。您甚至可以编写自己的委托(delegate)类型并使用它:

delegate bool IntPredicate(int x); 

static void Main()
{
IntPredicate isEven = delegate(int x) {return x % 2 == 0;};
Console.WriteLine(isEven(1) + "\r\r");
}

关于c# - Predicate<T> 相对于 Func<T,bool> 的优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4590494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com