CA1500: 変数名はフィールド名と同一にすることはできません
TypeName |
VariableNamesShouldNotMatchFieldNames |
CheckId |
CA1500 |
分類 |
Microsoft.Maintainability |
互換性に影響する変更点 |
フィールドと同じ名前のパラメーターで発生した場合
フィールドと同じ名前のローカル変数で発生した場合
|
原因
インスタンスのメソッドで、宣言型のインスタンス フィールドと名前が一致するパラメーターまたはローカル変数が宣言されています。規則に違反するローカル変数をキャッチするには、デバッグ情報を使用してテスト対象のアセンブリを構築し、関連するプログラム データベース (.pdb) ファイルを使用できる必要があります。
規則の説明
インスタンス フィールドの名前がパラメーターまたはローカル変数の名前と一致する場合、メソッドの本文では this (Visual Basic では Me) キーワードを使用してインスタンス フィールドにアクセスします。この違いは、コードを保守する際に忘れやすく、パラメーターまたはローカル変数がインスタンス フィールドを参照していると推測すると、エラーの原因となります。特にメソッドの本文が長い場合、このようなことが起きやすくなります。
違反の修正方法
この規則違反を修正するには、パラメーターまたは変数の名前、あるいはフィールドの名前のどちらかを変更します。
警告を抑制する状況
この規則による警告は抑制しないでください。
使用例
この規則の 2 つの違反例を次に示します。
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;
}
}
}