为什么> =有效但=>无效?

| 当检查整数是否等于或大于当前数字时..所以我键入
if (5 => 6) { //Bla } 
但这显示为错误。为什么?不完全一样吗
if (5 >= 6) { //Bla } 
    
已邀请:
之所以不起作用,是因为
=>
不等于ѭ3equivalent。 在lambda表达式中使用“ 2”。喜欢 :
(int x, string s) => s.Length > x
我同意这很烦人。在使用lambda表达式之前,我有时会把它弄错。现在我总是知道一个(
=>
)是lambda表达式,而另一个(
>=
)是大于等于符号     
因为运算符是
>=
而不是
=>
。 语言的作者可以选择其中一种语法,但必须选择一种。让两个运算符表示同一个事物,充其量只能使人困惑。 但是,运算符被读为“大于或等于”,因此“ 10”符号在第一位确实有意义。 现在,
=>
也用于Lambda表达式。     
因为
=>
用于lambda表达式:
Action<object> print = o => Console.WriteLine(o);
print(123);
此外,您不会说“等于或大于”,否则
=>
将被发音。     
这里的困惑是您假设> =是两个运算符一起变形的。实际上,它只是一个带有两个字符的运算符,与大量其他运算符(+ =,* =,-=等)大致相同。     
为什么会这样呢? =!也不和!=相同。这是语言语法的一部分。 在此特定情况下,=>也用于lambda表达式,因此它还有另一个用途。     
因为它被称为大于或等于。不等于或大于。简单吧?     
在C#中,大于或小于符号必须在等号之前。它只是该语言语法的一部分。     
因为
=>
在c#中代表Lambda表达式。 如您所知,“ 3”代表大于或等于。 语法使得您在比较两个实体时必须使用
>=
。另外,您还可以注意到,即使它们之间的间隔也会产生错误-
> =
    
不,不是一样的。 C#中正确的运算符是> =用于比较,=>对于lambda表达式。     
@Barry \的答案可能是这里最有见地的。一个运算符并不意味着一个字符。
>
=
合并形成
>=
的事实并不意味着它同时在做
>
=
。它正在执行一个操作。为该操作定义的运算符包括其他两个类似操作的字符这一事实是无关紧要的。 我想如果您真的想覆盖它,以使
>=
=>
都以相同的方式工作-C#确实允许运算符覆盖。但这不是一个好主意,因为正如其他人已经说过的那样,ѭ2实际上是用于其他目的的。     

要回复问题请先登录注册