CA1500 : Les noms de variables ne doivent pas être identiques aux noms de champs
TypeName |
VariableNamesShouldNotMatchFieldNames |
CheckId |
CA1500 |
Catégorie |
Microsoft.Maintainability |
Modification avec rupture |
Lorsqu'elle est déclenchée sur un paramètre qui a le même nom qu'un champ :
Lorsqu'elle est déclenchée sur une variable locale qui a le même nom qu'un champ :
|
Cause
Une méthode d'instance déclare un paramètre ou une variable locale dont le nom correspond à un champ d'instance du type déclarant. Pour intercepter les variables locales qui enfreignent la règle, l'assembly testé doit être construit avec des informations de débogage et le fichier de base de données de programme (.pdb) associé doit être disponible.
Description de la règle
Lorsque le nom d'un champ d'instance correspond au nom d'un paramètre ou d'une variable locale, le champ d'instance est accédé à l'aide du mot clé this (Me en Visual Basic) lorsqu'il figure dans le corps de la méthode. Lorsque vous gérez le code, il est facile d'oublier cette différence et de supposer que le paramètre ou la variable locale fait référence au champ d'instance, ce qui crée des erreurs. C'est surtout vrai pour les corps de méthode longs.
Comment corriger les violations
Pour corriger une violation de cette règle, renommez le paramètre/variable ou le champ.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple
L'exemple suivant présente deux violations de la règle.
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;
}
}
}