考虑以下算术计算。为了简单起见,我尽可能地缩短了它们:
x = y + y * z;
x = y + z - y * z;
没有StyleCop,这是完全合法的,并且可能,计算遵循BODMAS(与任何算术计算一样)。
当它通过StyleCop传递时,它会显示以下警告:
CSharp.Maintainability:在算术中插入括号 表达式来声明运算符优先级。
据推测,我需要做的就是在插入括号时遵循BODMAS的规则,如下所示:
x = y + (y * z);
x = (y + z) - (y * z);
我假设StyleCop希望我明确定义BODMAS的规则,如果我想要执行计算,就像没有括号那样完全正确吗?
答案 0 :(得分:11)
这是对的。 StyleCop基本上假设您对Operator优先级不太满意并希望明确写出来。如果有人稍后处理公式,那么这可以导致更稳定的代码。从技术上讲,不需要 - 但是你会假设编译器将如何处理它是绝对正确的。当然通常就是这种情况(BODMAS)。
最后,情况是“你可能不知道你做了什么,所以我们确保你拼出来”。这并不是一个糟糕的态度 - 代码稳定性是主要关注点 - 但你也可以将警告关闭。