ReSharper 2024.1 Help

Code inspection: Potentially misleading parameter name in lambda or local function

Historically, the symbol _ has been a valid identifier name in C#, making it perfectly legal to name variables, parameters, and other code entities as _. However, with the introduction of the discards concept in C#, using _ as a name has become undesirable, as it can block the usage of _ to express the value discard in some scope of code.

As C# gradually moves towards limited breaking changes to address this issue, this inspection helps future-proof your code and minimize potential confusion. It reports variables and parameters named _ that are actually being used, making them appear as a 'discarded' value.

If a parameter or a variable name consists of multiple _ characters and has usages, it will also be reported.

public class Test { private Action<string> greet = _ => { Console.WriteLine("Hello " + _); }; }
public class Test { private Action<string> greet = name => { Console.WriteLine("Hello " + name); }; }
Last modified: 14 May 2024