gpt4 book ai didi

c# - 无法将表达式类型 'lambda expression' 转换为返回类型 'System.Linq.Expressions.Expression>'

转载 作者:太空狗 更新时间:2023-10-30 00:36:24 24 4
gpt4 key购买 nike

好吧,我迷路了。为什么第一个函数是错误的(lambda 表达式中的波浪形),而第二个是正确的(意味着它可以编译)?

    public static Expression<Func<IProduct, string, bool>> IsValidExpression(string val)
{
return (h => h.product_name == val);

}

public static Expression<Func<IProduct, bool>> IsValidExpression2()
{
return (m => m.product_name == "ACE");

}

最佳答案

您的第一个函数将需要两个参数。 Func<x,y,z> 定义了两个参数和返回值。因为你有一个 IProduct和一个 string作为参数,您需要在 lambda 中使用两个参数。

  public static Expression<Func<IProduct, string, bool>> IsValidExpression(string val)
{
return ((h, i) => h.product_name == val);
}

你的第二个功能只有Func<x,y> ,这意味着函数签名只有一个参数,因此您的 lambda 语句可以编译。

关于c# - 无法将表达式类型 'lambda expression' 转换为返回类型 'System.Linq.Expressions.Expression<System.Func<IProduct,string,bool>>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2045409/

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