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 に答える