Review unused parameters
TypeName |
AvoidUnusedParameters |
CheckId |
CA1801 |
Category |
Microsoft.Performance |
Breaking Change |
Breaking,NonBreaking |
Cause
A method signature includes a parameter that is not used in the method body. The following methods are not examined by this rule:
Methods referenced by a delegate.
Methods used as event handlers.
Methods declared with the abstract (MustOverride in Visual Basic) modifier.
Methods declared with the virtual (Overridable in Visual Basic) modifier.
Methods declared with the override (Overrides in Visual Basic) modifier.
Methods declared with the extern (Declare statement in Visual Basic) modifier.
Rule Description
Review parameters in non-virtual methods that are not used in the method body to insure no correctness exists around failure to access them. Unused parameters incur maintenance and performance costs. Sometimes a violation of this rule can point to an implementation bug in the method (i.e. the parameter should actually have been used in the method body). Exclude warnings of this rule if the parameter has to exist because of backward compatibility.
How to Fix Violations
To fix a violation of this rule, remove the unused parameter (a breaking change) or use the parameter in the method body (a non-breaking change). If the this parameter is reported, change the method declaration to include the static (Shared in Visual Basic) modifier (a breaking change).
When to Exclude Warnings
It is safe to exclude a warning from this rule for previously shipped code for which the fix would be a breaking change.
Example
The following shows two methods, one that violates the rule and one that satisfies the rule.