我今天遇到了以下(令人难以置信的钝)代码:
if (str == null == false)
我最初的假设是它在逻辑上等同于
if((str == null) == false)
因此
if(str != null)
这么简单吗?
答案 0 :(得分:10)
是。 The C# spec has left to right associativity on operators at the same precedence
在C# 5.0中,当前最新版本,您可以在第7.3.1节“运算符优先级和关联性”中找到它。
答案 1 :(得分:5)
是的,你是对的。您只需要关注Operator precedence rules of C#,就像您在示例中所做的那样。
答案 2 :(得分:1)
是的,这是对的。如果str
不为空,则进行测试。并且原始代码是一种表达它的糟糕,神秘的方式。