Code Inspection: Parameter output value is always discarded (non-private accessibility)
The C# 6.0 "out var" greatly reduces the amount of code needed to use methods with
out parameters — now we almost always declare variables inline and often use type inference to omit variable type:
dictionary.TryGetValue(key, out var value).
Another aspect of
out parameters that C# 6.0 has improved is the ability to ignore the output parameter values that we don't need with
M(out _) or
M(out var _) syntax. So it's not uncommon to see invocations like
DoSomething(arg, out _, out _) in modern C# codebase.
JetBrains Rider analyzes such invocations and reports
out parameters that are discarded on all call sites. This helps identify potential problems of a value being always discarded and simplify the signature by removing the unused parameters.