【发布时间】:2015-04-03 12:56:36
【问题描述】:
我希望能够像这样比较整数和字符串:
if(a==b==c==d==e)
不幸的是,C# 不会编译它(我不确定 C)。
如果我能解决这个问题,有什么想法吗?为什么 C# 团队不允许这种更简单的语法? (而不是像a==b && a==c && a==d && a==e 这样的麻烦)。
作为一个单独的查询,if(someValue == (5 || 6 || 7 || 8)) 而不是一直说someValue==5 || someValue==6 || etc. etc. 有什么问题?显然,1 或更多被 .NET 视为“真”,但我认为我们应该用更短的语法替换该范式以简化代码的阅读和编写。
********* 编辑:
正如有人在 cmets 中所说,由于优先级问题,a==b==c==d==e 在使用布尔逻辑时会出现问题(例如:(false==false) == false)。但是,使用整数或字符串时不会出现此类问题。
【问题讨论】:
-
if(someValue==5 || 6 || 7 || 8)--> 检查运算符优先级。 -
a==b==c与(a==b) == c相同,与a==b && b == c完全不同 -
@SouravGhosh:谢谢,已编辑。
-
你知道
(5 || 6 || 7 || 8)的结果吗? -
@SouravGhosh:在 C# 中,它无法编译。在 C 语言中,我猜是“真”,但我希望将其重新用于更简单的语法,因为几乎没有人将整数用于布尔逻辑。
标签: c# c syntax conditional-statements