5

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

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 的规则,就像没有括号一样?

4

1 回答 1

11

它是正确的。StyleCop 基本上假设您对运算符优先级不太满意,并希望将其明确写出来。如果稍后有人在公式上工作,这可能会导致更稳定的代码。它在技术上是不需要的——但是你假设你的假设是绝对正确的,编译器将如何处理它。当然,通常情况下(BODMAS)。

最后,这是一个“你可能不知道你在做什么,所以我们确保你把它写出来”的情况。这不是一个坏态度——代码稳定性是主要问题——但你也可以关掉这个警告。

于 2013-01-03T09:16:48.133 回答