ReSharper 2025.3 ヘルプ

コード検査: ラムダまたはローカル関数内の誤解を招く可能性のあるパラメーター名

歴史的に、シンボル _ は C# の有効な識別子名であり、変数、パラメーター、その他のコードエンティティに _ という名前を付けることは完全に合法です。ただし、C# で破棄の概念が導入されたため、_ を名前として使用することは望ましくありません。これは、コードの一部のスコープ内で値破棄を表すために _ を使用することを妨げる可能性があるためです。

C# はこの問題に対処するために徐々に限定的な変更(英語)に移行していますが、このインスペクションはコードの将来性を確保し、潜在的な混乱を最小限に抑えるのに役立ちます。実際に使用されている _ という名前の変数とパラメーターを報告し、「破棄された」値として表示します。

パラメーターまたは変数名が複数の _ 文字で構成され、使用箇所がある場合も報告されます。

public class Test { private Action<string> greet = _ => { Console.WriteLine("Hello " + _); }; }
public class Test { private Action<string> greet = name => { Console.WriteLine("Hello " + name); }; }
2024 年 5 月 14 日