首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法将表达式类型“lambda expression”转换为返回类型为bool>>的'System.Linq.Expressions.Expression<System.Func<IProduct,字符串“”

无法将表达式类型“lambda expression”转换为返回类型为bool>>的'System.Linq.Expressions.Expression<System.Func<IProduct,字符串“”
EN

Stack Overflow用户
提问于 2010-01-12 06:29:29
回答 4查看 17.1K关注 0票数 4

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

代码语言:javascript
运行
复制
    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");

    }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-12 06:33:10

你的第一个函数需要两个参数。定义了两个参数和返回值。因为您同时有一个IProduct和一个string作为参数,所以在您的lambda中需要两个参数。

代码语言:javascript
运行
复制
  public static Expression<Func<IProduct, string, bool>> IsValidExpression(string val)
  {
        return ((h, i) => h.product_name == val);
  }

您的第二个函数仅为Func<x,y>,因此这意味着函数签名只有一个参数,因此您的lambda语句将被编译。

票数 7
EN

Stack Overflow用户

发布于 2010-01-12 06:32:57

中间的string打算做什么?您可以通过以下方式使其编译:

代码语言:javascript
运行
复制
public static Expression<Func<IProduct, string, bool>> IsValidExpression(string val)
{
    return (h,something) => h.product_name == val;
}

或者你的意思是:

代码语言:javascript
运行
复制
public static Expression<Func<IProduct, string, bool>> IsValidExpression()
{
    return (h,val) => h.product_name == val;
}
票数 3
EN

Stack Overflow用户

发布于 2010-01-12 06:39:40

Func<IProduct, string, bool>是具有以下签名的方法的委托:

代码语言:javascript
运行
复制
bool methodName(IProduct product, string arg2)
{
  //method body
  return true || false;
}

所以

代码语言:javascript
运行
复制
public static Expression<Func<IProduct, string, bool>> IsValidExpression(string val)
{
    return (h => h.product_name == val);
}

返回类型和返回值之间存在差异。您正在尝试返回Expression<Func<IProduct, bool>>类型的对象。

val参数不是您委托给的方法的参数,但将被提升(成为实现结果函数的类的一部分),并且由于它不是结果方法的参数,因此它不应该是Func类型分离的一部分

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2045409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档