【问题标题】:Why does >= work but => not?为什么 >= 有效但 => 无效?
【发布时间】:2011-04-13 11:55:06
【问题描述】:

当检查一个整数是否等于或大于当前数字时..所以我输入

if (5 => 6) { //Bla } 

但它显示这是一个错误。为什么?是不是完全一样

if (5 >= 6) { //Bla } 

【问题讨论】:

  • 语法不正确。
  • 几乎在每一种编程语言中都是 >= 和

标签: c# operators


【解决方案1】:

之所以不起作用是因为=>不等于>=

=> 用于lambda expression。喜欢:

(int x, string s) => s.Length > x

我同意这很烦人。在 lambda 表达式之前,我有时会弄错。现在我总是知道一个 (=>) 是一个 lambda 表达式 而另一个 (>=) 是 大于等于 符号

【讨论】:

  • 我一直在做错,因为我认为就像我在 BoltClock 的评论中发布的那样
  • C# lambda 语法是在将 >= 确定为花括号家族语言中的“大于或等于”运算符几十年后出现的。
【解决方案2】:

因为运营商是>= 而不是=>

语言的作者可以选择其中一种语法,但必须选择一种。有两个运算符表示同一个意思,充其量只会让人感到困惑。

但是,运算符被读取为“大于或等于”,因此 > 符号在第一位是有意义的。

=> 现在也用于 Lambda 表达式。

【讨论】:

    【解决方案3】:

    因为=> 用于 lambda 表达式:

    Action<object> print = o => Console.WriteLine(o);
    print(123);
    

    此外,您不会说“等于或大于”,否则 =&gt; 会发这种音。

    【讨论】:

    • 不相关,但 Erlang 选择了 =&lt;&gt;=,所以“你不会说‘等于或小于’”至少在一种古怪的语言中是失败的。 :)
    • @sarnold:好吧,你让我到了那里:P
    • Imo,您首先检查一个数字是否与您要比较的数字相同,然后检查它是更高还是更低。所以 => 和 = 不起作用。您关于 => 为 lambda 的回答将使我接受这个答案,因为您是第一个说它的人!
    • @Levisaxos: 不,头晕是第一位的 :)
    • 接受头晕的作为答案。为你的诚实点赞 :)
    【解决方案4】:

    这里的困惑是你假设 >= 是两个运算符一起被平滑。事实上,它只是一个有两个字符的运算符,与大量其他运算符(+=、*=、-= 等)非常相似。

    【讨论】:

      【解决方案5】:

      为什么会这样? =!也不与 != 相同。这是语言语法的一部分。

      在这种特定情况下,=> 也用于 lambda 表达式,因此它还有其他用途。

      【讨论】:

        【解决方案6】:

        因为它被称为大于或等于。不等于或大于。简单吧?

        【讨论】:

          【解决方案7】:

          在 C# 中,大于或小于号必须在等号之前。它只是语言语法的一部分。

          【讨论】:

            【解决方案8】:

            因为=&gt; 代表 c# 中的 Lambda 表达式。

            &gt;= 代表大于或等于,如您所知。

            语法是这样的,你必须在比较两个实体时使用&gt;=。另外,您还可以注意到,即使它们之间的空格也会出错 - &gt; =

            【讨论】:

              【解决方案9】:

              不,不一样。 c# 中的正确运算符是 >= 用于比较,=> 用于 lambda 表达式。

              【讨论】:

                【解决方案10】:

                @Barry 的回答可能是这里最有见地的回答。单个运算符并不意味着单个字符; &gt;= 组合形成 &gt;= 的事实并不意味着它同时在做 &gt;=;它正在执行单个操作。为该操作定义的运算符包含其他两个类似操作的字符这一事实无关紧要。

                我想如果你真的想要你可以覆盖它,这样&gt;==&gt; 的工作方式相同——C# 确实允许运算符覆盖。但这不是一个好主意,因为正如其他人已经说过的那样,=&gt; 实际上是用于其他目的。

                【讨论】:

                  猜你喜欢
                  • 2022-01-12
                  • 2020-05-14
                  • 2020-10-07
                  • 2023-03-30
                  • 2013-05-13
                  • 2011-09-06
                  • 2020-02-19
                  相关资源
                  最近更新 更多