ReSharper 2024.3 ヘルプ

コード検査: 共通コードを抽出する

このインスペクションは、if および switch ステートメントの異なるブランチ内の同等のコードを報告します。対応するクイックフィックスは、重複したコードを自動的に抽出し、分岐の前または後に配置できます。

同等のコードが意図されている場合、共通のステートメントを統合すると、コードがわかりやすくなり、保守しやすくなります。ただし、分岐構造内の同等のコードはコピーアンドペーストの結果であることが多いため、このインスペクションはバグの検出にも役立ちます。コードでこの問題が見つかった場合は、まず同等のコードが意図されているかどうかを確認してください。

void GreetCustomer(string name, bool known) { var sb = new StringBuilder(); if (known) { sb.AppendLine($"Hello, {name}!"); sb.AppendLine("Welcome back!"); } else { sb.AppendLine($"Hello, {name}!"); sb.AppendLine("Welcome!"); } Console.WriteLine(sb.ToString()); }
void GreetCustomer(string name, bool known) { var sb = new StringBuilder(); sb.AppendLine($"Hello, {name}!"); if (known) { sb.AppendLine("Welcome back!"); } else { sb.AppendLine("Welcome!"); } Console.WriteLine(sb.ToString()); }