【问题标题】:Cannot convert lambda expression to type bool [closed]无法将 lambda 表达式转换为 bool 类型 [关闭]
【发布时间】:2015-07-28 17:29:41
【问题描述】:

无法将 lambda 表达式转换为 bool 类型,因为它不是委托类型。

protected void button1_Click(object sender, EventArgs e)
    {


        int totalpoints;
        Int32 realpoints;
        lelpoints = 0;
        totalpoints = Convert.ToInt32(dPts.Text);
        totalpoints = totalpoints + 1;
        totalpoints = realpoints;
        dPts.Text = totalpoints.ToString();

    }


    protected void buyBG_Click(object sender, EventArgs e)
    {
        string[] rbg = new string[] { "red", "green", "blue" };


        Random random = new Random();
        int randomNumber = random.Next(0, 3);
        string currentbg = rbg[randomNumber];

        if (realpoints => 10 ){}

这是我在使用上面提供的代码时遇到的问题。问题显示在底部的 If 语句中。

编辑:将=> 更改为>= 肯定解决了该问题,但现在它报告错误“名称 realpoints 在当前上下文中不存在”。谢谢

【问题讨论】:

  • 切换=>=> 生成一个 lambda,>= 是“大于或等于”运算符。由于简单的印刷错误,投票以离题结束。
  • 在您的编辑中:是的,我也看到了那个。在修复错误的方法之外定义realpoints。如果您还有其他问题,请提出新问题。
  • 谢谢,如果出现更多问题,我会提出一个新问题。麻烦您了,这个问题已经结束了。

标签: c# types lambda boolean


【解决方案1】:

不是=>,而是>=

这应该可以解决您的问题。

【讨论】:

  • 你应该投票结束而不是回答。
  • @Jashaszun:没有理由关闭它,除非有重复。简单的问题?是的。无论如何合理?是的。
  • 你是认真的吗?作为 45.5k 代表用户,您现在应该知道关闭的原因。其中之一是“由于简单的印刷错误而偏离主题”,这正是这个问题。
  • @Jashaszun:这不是“印刷错误”。这是缺乏语言知识
  • 他问这个问题意味着他不明白=>>=之间的区别,这不仅仅是一个简单的错字,我相信他学到了很多关于什么一个 lambda 表达式是。
【解决方案2】:

=>lambda 运算符与大于或等于运算符 >=

不同

【讨论】:

    【解决方案3】:

    您可以将 =>(lambda 符号)读作“前往”。意味着您正在将参数传递给委托主体。在您的情况下,realpoints => 10 表示 realpoints 是参数,10 是主体,而该主体不是 bool 类型(10 不是 bool)。

    例如,您有一个整数列表,例如: 列表 intList = 新列表 {10, 14,5,17};

    您想在列表中找到大于 10 的第一个整数,那么您可以使用 lambda 表达式,例如 int numberFound = intList.Find(x => x > 10 );

    谢谢, 苏克

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多