0

SonarLint 规则 2760:顺序测试不应检查相同的条件

这会影响运行方法并返回大量误报的语句。我能给出的最简单的例子是:

if (_rnd.NextDouble() < Settings.RandomChance)
{
    MethodA();
}
if (_rnd.NextDouble() < Settings.RandomChance)
{
    MethodB();
}

期望的结果是有时运行 MethodA,有时运行 MethodB,有时同时运行两者。

4

1 回答 1

1

我们已经对此规则进行了一些讨论,您可以在此处查看:

这条规则似乎有很多极端情况。我们绝对不想维护此规则的例外列表,因此我们最安全的选择是默认禁用该规则。我为此创建了一个 GitHub 问题(https://github.com/SonarSource/sonarlint-vs/issues/419),您可以在那里添加更多示例。

于 2015-09-21T06:32:02.183 回答