CA1804: Remove unused locals
Note
This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
Item | Value |
---|---|
TypeName | RemoveUnusedLocals |
CheckId | CA1804 |
Category | Microsoft.Performance |
Breaking Change | Non-breaking |
Cause
A method declares a local variable but does not use the variable except possibly as the recipient of an assignment statement. For analysis by this rule, the tested assembly must be built with debugging information and the associated program database (.pdb) file must be available.
Rule Description
Unused local variables and unnecessary assignments increase the size of an assembly and decrease performance.
How to Fix Violations
To fix a violation of this rule, remove or use the local variable. Note that the C# compiler that is included with .NET Framework 2.0 removes unused local variables when the optimize
option is enabled.
When to Suppress Warnings
Suppress a warning from this rule if the variable was compiler emitted. It is also safe to suppress a warning from this rule, or to disable the rule, if performance and code maintenance are not primary concerns.
Example
The following example shows several unused local variables.
using System;
using System.Windows.Forms;
namespace PerformanceLibrary
{
public class UnusedLocals
{
public void SomeMethod()
{
int unusedInteger;
string unusedString = "hello";
string[] unusedArray = Environment.GetLogicalDrives();
Button unusedButton = new Button();
}
}
}
Imports System
Imports System.Windows.Forms
Namespace PerformanceLibrary
Public Class UnusedLocals
Sub SomeMethod()
Dim unusedInteger As Integer
Dim unusedString As String = "hello"
Dim unusedArray As String() = Environment.GetLogicalDrives()
Dim unusedButton As New Button()
End Sub
End Class
End Namespace
Related Rules
CA1809: Avoid excessive locals
CA1811: Avoid uncalled private code