C# Lambda表达式替换为什么我可以使用";%&引用;操作员,而不是&燃气轮机&引用;操作人员

C# Lambda表达式替换为什么我可以使用";%&引用;操作员,而不是&燃气轮机&引用;操作人员,c#,lambda,C#,Lambda,有人能告诉我为什么第二条线坏了吗?为什么我不能使用“>”,“=”,“,因为x>0是布尔值,而不是整数 您可以使用返回x>0来简化此操作;是返回布尔值的比较运算符 简单地 return x%2 != 0; // Return true if x is odd. => ok return x>0 == 1; // Return true if x > 0 => this won't work 在您要求的所有运算符中,除了=之外,所有运算符都可以工作。它是C#中的

有人能告诉我为什么第二条线坏了吗?为什么我不能使用
“>”
“=”
“,因为
x>0
是布尔值,而不是整数


您可以使用
返回x>0来简化此操作;
是返回布尔值的比较运算符

简单地

  return x%2 != 0; // Return true if x is odd. => ok


  return x>0 == 1; // Return true if x > 0 => this won't work
在您要求的所有运算符中,除了
=
之外,所有运算符都可以工作。它是C#中的赋值运算符。因此您不能这样做

public bool FooBar(int x)
{
    return x > 0;
}
但你能做到

return x = 1;

返回x<1;

Wow…@RobertHarvey你的评论在每个答案中都会出现涟漪!在我的辩护中,我正在编辑和添加,而他评论说!:p你的评论与第一行的代码不匹配。
return x%2==1;
不返回x是否为奇数;它返回x是否为正数和奇数。正确的代码是
returnx%2!=0;
谢谢@EricLippert你说得绝对正确,编辑。
return x == 1;
return x < 1;