SonarLint 规则 2760:顺序测试不应检查相同的条件
这会影响运行方法并返回大量误报的语句。我能给出的最简单的例子是:
if (_rnd.NextDouble() < Settings.RandomChance)
{
MethodA();
}
if (_rnd.NextDouble() < Settings.RandomChance)
{
MethodB();
}
期望的结果是有时运行 MethodA,有时运行 MethodB,有时同时运行两者。
我们已经对此规则进行了一些讨论,您可以在此处查看:
这条规则似乎有很多极端情况。我们绝对不想维护此规则的例外列表,因此我们最安全的选择是默认禁用该规则。我为此创建了一个 GitHub 问题(https://github.com/SonarSource/sonarlint-vs/issues/419),您可以在那里添加更多示例。