コードインスペクション:ラムダやローカル関数内で誤解を招く可能性のあるパラメーター名について
従来、シンボル _ は 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);
};
}
2026 年 6 月 12 日