CA1500:变量名不应与字段名相同
类型名 |
VariableNamesShouldNotMatchFieldNames |
CheckId |
CA1500 |
类别 |
Microsoft.Maintainability |
是否重大更改 |
在与字段同名的参数上激发时:
在与字段同名的局部变量上激发时:
|
原因
实例方法声明一个名称与声明类型的实例字段匹配的参数或局部变量。 若要捕捉与该规则冲突的局部变量,必须使用调试信息来生成被测试的程序集,并且关联的程序数据库文件 (.pdb) 必须可用。
规则说明
如果实例字段的名称与参数或局部变量的名称相同,在方法体内将使用 this(在 Visual Basic 中为 Me)关键字来访问实例字段。 维护代码时,很容易忘记此区别,而把参数/局部变量当成实例字段,从而导致错误。 对于较长的方法体,更是如此。
如何解决冲突
若要修复与该规则的冲突,请重命名参数/变量或字段。
何时禁止显示警告
不要禁止显示此规则发出的警告。
示例
下面的示例演示与该规则冲突的两种情况。
Imports System
Namespace MaintainabilityLibrary
Class MatchingNames
Dim someField As Integer
Sub SomeMethodOne(someField As Integer)
End Sub
Sub SomeMethodTwo()
Dim someField As Integer
End Sub
End Class
End Namespace
using System;
namespace MaintainabilityLibrary
{
class MatchingNames
{
int someField;
void SomeMethodOne(int someField) {}
void SomeMethodTwo()
{
int someField;
}
}
}