CA1804: Nicht verwendete lokale Variablen entfernen
TypeName |
RemoveUnusedLocals |
CheckId |
CA1804 |
Kategorie |
Microsoft.Performance |
Unterbrechende Änderung |
Nicht unterbrechend |
Ursache
In einer Methode wird eine lokale Variable deklariert, aber höchstens als Empfänger einer Zuweisungsanweisung verwendet. Damit eine Analyse gemäß dieser Regel möglich ist, muss die getestete Assembly mit Debuginformationen erstellt werden, und die zugehörige Programmdatenbankdatei (PDB) muss verfügbar sein.
Regelbeschreibung
Nicht verwendete lokale Variablen und unnötige Zuweisungen vergrößern die Assembly unnötig und beeinträchtigen die Leistung.
Behandeln von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, entfernen oder verwenden Sie die lokale Variable. Beachten Sie, dass der C#-Compiler (gehört zum Lieferumfang von .NET Framework 2.0) nicht verwendete lokale Variablen entfernt, wenn die optimize-Option aktiviert ist.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie eine Warnung dieser Regel, wenn die Variable vom Compiler ausgegeben wurde. Eine Warnung dieser Regel kann ebenso gefahrlos unterdrückt werden, bzw. die Regel kann deaktiviert werden, wenn das Leistungsverhalten und die Codepflege nicht im Vordergrund stehen.
Beispiel
Im folgenden Beispiel werden mehrere nicht verwendete lokale Variablen veranschaulicht.
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
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();
}
}
}
Verwandte Regeln
CA1809: Übermäßige lokale Variablen vermeiden
CA1811: Nicht aufgerufenen privaten Code vermeiden