【发布时间】:2011-04-13 11:55:06
【问题描述】:
当检查一个整数是否等于或大于当前数字时..所以我输入
if (5 => 6) { //Bla }
但它显示这是一个错误。为什么?是不是完全一样
if (5 >= 6) { //Bla }
【问题讨论】:
-
语法不正确。
-
几乎在每一种编程语言中都是 >= 和
当检查一个整数是否等于或大于当前数字时..所以我输入
if (5 => 6) { //Bla }
但它显示这是一个错误。为什么?是不是完全一样
if (5 >= 6) { //Bla }
【问题讨论】:
之所以不起作用是因为=>不等于>=。
=> 用于lambda expression。喜欢:
(int x, string s) => s.Length > x
我同意这很烦人。在 lambda 表达式之前,我有时会弄错。现在我总是知道一个 (=>) 是一个 lambda 表达式 而另一个 (>=) 是 大于等于 符号
【讨论】:
因为运营商是>= 而不是=>。
语言的作者可以选择其中一种语法,但必须选择一种。有两个运算符表示同一个意思,充其量只会让人感到困惑。
但是,运算符被读取为“大于或等于”,因此 > 符号在第一位是有意义的。
=> 现在也用于 Lambda 表达式。
【讨论】:
因为=> 用于 lambda 表达式:
Action<object> print = o => Console.WriteLine(o);
print(123);
此外,您不会说“等于或大于”,否则 => 会发这种音。
【讨论】:
=< 和 >=,所以“你不会说‘等于或小于’”至少在一种古怪的语言中是失败的。 :)
这里的困惑是你假设 >= 是两个运算符一起被平滑。事实上,它只是一个有两个字符的运算符,与大量其他运算符(+=、*=、-= 等)非常相似。
【讨论】:
为什么会这样? =!也不与 != 相同。这是语言语法的一部分。
在这种特定情况下,=> 也用于 lambda 表达式,因此它还有其他用途。
【讨论】:
因为它被称为大于或等于。不等于或大于。简单吧?
【讨论】:
在 C# 中,大于或小于号必须在等号之前。它只是语言语法的一部分。
【讨论】:
因为=> 代表 c# 中的 Lambda 表达式。
>= 代表大于或等于,如您所知。
语法是这样的,你必须在比较两个实体时使用>=。另外,您还可以注意到,即使它们之间的空格也会出错 - > =
【讨论】:
不,不一样。 c# 中的正确运算符是 >= 用于比较,=> 用于 lambda 表达式。
【讨论】:
@Barry 的回答可能是这里最有见地的回答。单个运算符并不意味着单个字符; > 和 = 组合形成 >= 的事实并不意味着它同时在做 > 和 =;它正在执行单个操作。为该操作定义的运算符包含其他两个类似操作的字符这一事实无关紧要。
我想如果你真的想要你可以覆盖它,这样>= 和=> 的工作方式相同——C# 确实允许运算符覆盖。但这不是一个好主意,因为正如其他人已经说过的那样,=> 实际上是用于其他目的。
【讨论】: