Поделиться через


CA1804: удалите неиспользуемые локальные переменные

TypeName

RemoveUnusedLocals

CheckId

CA1804

Категория

Microsoft.Performance

Критическое изменение

Не критическое

Причина

Метод объявляет локальную переменную, однако не использует ее. Эта переменная, возможно, является лишь получателем оператора присвоения.Для анализа данного правила проверяемую сборку следует построить с отладочной информацией и связанный PDB-файл должен быть доступен.

Описание правила

Неиспользуемые локальные переменные и ненужные присвоения увеличивают размер сборки и снижают производительность.

Устранение нарушений

Чтобы устранить нарушение данного правила, удалите локальную переменную или используйте ее.Обратите внимание, что компилятор C#, который поставляется вместе с .NET Framework 2,0, удаляет все неиспользуемые переменные при компиляции с параметром optimize.

Отключение предупреждений

Если указанная переменная создана компилятором, предупреждение о нарушение данного правила можно отключить.Кроме того, если производительность и удобство поддержки не входят в число основных приоритетов для кода, отключение такого рода предупреждений будет совершенно безопасно.

Пример

В следующем примере демонстрируется несколько неиспользуемых локальных переменных.

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();
      }
   }
}

Связанные правила

CA1809: избегайте чрезмерного использования локальных переменных

CA1811: не используйте невызываемый закрытый код

CA1812: не создавайте внутренние классы без экземпляров

CA1801: проверьте неиспользуемые параметры