StyleCop - 运营商优先级的CSharp.Maintainability警告

时间:2013-01-03 09:13:20

标签: c# .net math stylecop brackets

考虑以下算术计算。为了简单起见,我尽可能地缩短了它们:

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的规则,如果我想要执行计算,就像没有括号那样完全正确吗?

1 个答案:

答案 0 :(得分:11)

这是对的。 StyleCop基本上假设您对Operator优先级不太满意并希望明确写出来。如果有人稍后处理公式,那么这可以导致更稳定的代码。从技术上讲,不需要 - 但是你会假设编译器将如何处理它是绝对正确的。当然通常就是这种情况(BODMAS)。

最后,情况是“你可能不知道你做了什么,所以我们确保你拼出来”。这并不是一个糟糕的态度 - 代码稳定性是主要关注点 - 但你也可以将警告关闭。