为什么> =工作但是=>不?

时间:2011-04-13 11:55:06

标签: c# operators

检查整数是否与当前数字相同或更高时..所以我输入

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

但它显示为错误。为什么?是不是和

完全相同
if (5 >= 6) { //Bla } 

10 个答案:

答案 0 :(得分:13)

它不起作用的原因是因为=>不等同于>=

=>用于lambda expression。喜欢:

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

我确实同意它很烦人。在lambda表达式之前,我曾经常常弄错了。现在我总是知道一个(=>)是 lambda表达式而其他(>=)是大于等于符号

答案 1 :(得分:11)

因为运营商>=不是=>

该语言的编写者可以选择任一种语法,但必须选择一种语法。让两个运营商意味着同样的事情会让人感到困惑。

但是,操作符被读作“大于或等于”,因此>符号是第一个有意义。

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

答案 2 :(得分:6)

因为=>适用于lambda表达式:

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

此外,你没有说“等于或大于”,这就是=>本来会被宣读的内容。

答案 3 :(得分:5)

这里的混淆是你假设&gt; =是两个运算符一起被淘汰了。事实上,它只有一个有两个字符的运算符,与其他运算符的数量大致相同(+ =,* =, - =等)。

答案 4 :(得分:4)

为什么会这样? =!和...不一样。这是语言语法的一部分。

在这种特定情况下,=&gt;也用于lambda表达式,因此它有另一个用途。

答案 5 :(得分:2)

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

答案 6 :(得分:1)

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

答案 7 :(得分:1)

因为=>代表c#中的Lambda表达式。

正如您所知,

>=代表大于或等于。

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

答案 8 :(得分:0)

不,它不是一样的。 c#中的正确运算符是&gt; =用于比较和=&gt;对于lambda表达式。

答案 9 :(得分:0)

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

我想如果你真的希望你可以覆盖它,以便>==>都以相同的方式工作 - C#允许运算符覆盖。但这是一个坏主意,因为正如其他人已经说过的那样,=>实际上是用于其他目的。