CA1500: Nazwy zmiennych nie powinny odpowiadać nazwom pól
TypeName |
VariableNamesShouldNotMatchFieldNames |
CheckId |
CA1500 |
Kategoria |
Microsoft.Maintainability |
Złamanie zmiany |
Gdy wywoływane na parametr, który ma taką samą nazwę jak pole:
Gdy wywoływane w zmiennej lokalnej, która ma taką samą nazwę jak pole:
|
Przyczyna
Metody instancji deklaruje parametr lub zmienna lokalna, których nazwa pasuje do pola typ deklarujący wystąpienia.Do połowu zmiennych lokalnych, które naruszają reguły, zestawu badane musi być budowany za pomocą informacji o debugowaniu i pliku bazy danych (.pdb) skojarzony z nim program musi być dostępny.
Opis reguły
Gdy nazwa pola wystąpienia pasuje do parametru lub nazwę zmiennej lokalnej, pole wystąpienia jest dostępny za pomocą this (Me w Visual Basic) słowo kluczowe, gdy wewnątrz treści metody.Utrzymywanie kodu, jest łatwo zapomnieć tę różnicę i zakładać, że zmienna lokalne parametr odwołuje się do pola wystąpienia, które prowadzi do błędów.Dotyczy to szczególnie dla organów długich metody.
Jak naprawić naruszenia
Aby naprawić naruszenie tej zasady, Zmień nazwę parametru/zmienna lub z pola.
Kiedy do pomijania ostrzeżenia
Nie pomijaj ostrzeżenie od tej reguły.
Przykład
W poniższym przykładzie przedstawiono dwa naruszenia reguły.
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;
}
}
}