更新:2007 年 11 月
| TypeName | RemoveUnusedLocals | 
| CheckId | CA1804 | 
| 类别 | Microsoft.Performance | 
| 是否重大更改 | 否 | 
原因
某方法声明一个局部变量,但除了将该变量作为赋值语句的接收者之外,并不使用该变量。要通过该规则进行分析,必须使用调试信息生成被测试的程序集,并且关联的程序数据库 (.pdb) 文件必须可用。
规则说明
未使用的局部变量和不必要的赋值会增加程序集的大小并降低性能。
如何修复冲突
要修复与该规则的冲突,请移除或使用局部变量。注意,在启用了 optimize 选项的情况下,随 .NET Framework 2.0 提供的 C# 编译器将移除未使用的局部变量。
何时禁止显示警告
如果变量是编译器发出的,则可以禁止显示此规则发出的警告。如果性能和代码维护不是优先考虑的因素,则也可以安全地禁止显示此规则发出的警告,或者完全禁用此规则。
示例
下面的示例演示一些未使用的局部变量。
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();
      }
   }
}