CA1500: 変数名はフィールド名と同一にすることはできません
Item | [値] |
---|---|
規則 ID | CA1500 |
カテゴリ | Microsoft.Maintainability |
互換性に影響する変更点 | フィールドと同じ名前を持つパラメーターで実行された場合は、次のようになります。 - 非破壊的 - 加えた変更に関係なく、パラメーターを宣言するフィールドとメソッドの両方がアセンブリの外部から参照できない場合。 - 破壊的 - フィールドの名前を変更し、アセンブリの外部から参照できる場合。 - 破壊的 - パラメーターの名前を変更し、それを宣言するメソッドがアセンブリの外部から参照できる場合。 フィールドと同じ名前を持つローカル変数で実行した場合は、次のようになります。 - 非破壊的 - 加えた変更に関係なく、フィールドがアセンブリの外部から参照できない場合。 - 非破壊的 - ローカル変数の名前を変更し、フィールドの名前を変更しない場合。 - 破壊的 - フィールドの名前を変更し、アセンブリの外部から参照できる場合。 |
原因
宣言する型のインスタンス フィールドと名前が一致するパラメーターまたはローカル変数が、インスタンス メソッドで宣言されています。 規則に違反するローカル変数を捕捉するには、テストされるアセンブリをデバッグ情報を使用してビルドし、関連付けられているプログラムのデータベース (.pdb) ファイルが使用できる必要があります。
規則の説明
インスタンス フィールドの名前がパラメーターまたはローカル変数の名前と一致する場合、そのインスタンス フィールドがメソッド本体の内部にあるときは、this
(Visual Basic の Me
) キーワードを使用してアクセスされます。 コードをメンテナンスするときは、この違いを忘れがちであり、パラメーター/ローカル変数がインスタンス フィールドを参照していることを前提として、エラーが発生します。 これは特にメソッド本体が長い場合に当てはまります。
違反の修正方法
この規則違反を修正するには、パラメーター/変数またはフィールドのいずれかの名前を変更します。
どのようなときに警告を抑制するか
この規則による警告は抑制しないでください。
例
次の例に、2 つの規則違反を示します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示