CA1708 : Les identificateurs ne doivent pas différer uniquement par leur casse
Propriété | Value |
---|---|
Identificateur de la règle | CA1708 |
Titre | Les identificateurs ne doivent pas différer uniquement par leur casse |
Catégorie | Dénomination |
Le correctif est cassant ou non cassant | Rupture |
Activé par défaut dans .NET 8 | Non |
Cause
Les noms de deux types, membres, paramètres ou espaces de noms complets sont identiques lorsqu’ils sont convertis en minuscules.
Par défaut, cette règle examine uniquement les types, les membres et les espaces de noms visibles en externe, mais cette règle est configurable.
Description de la règle
Les identificateurs des espaces de noms, types, membres et paramètres ne peuvent pas différer uniquement par la casse car les langages qui ciblent le Common Language Runtime ne sont pas tenus de respecter celle-ci. Par exemple, Visual Basic est un langage largement utilisé qui ne respecte pas la casse.
Comment corriger les violations
Sélectionnez un nom unique lorsqu’il est comparé à d’autres identificateurs de manière indépendante de la casse.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle. La bibliothèque peut ne pas être utilisable dans tous les langages disponibles dans .NET.
Configurer le code à analyser
Utilisez l’option suivante pour configurer les parties de votre codebase sur lesquelles exécuter cette règle.
Vous pouvez configurer cette option pour cette règle uniquement, pour toutes les règles auxquelles elle s’applique ou pour toutes les règles de cette catégorie (Nommage) auxquelles elle s’applique. Pour plus d’informations, consultez Options de configuration des règles de qualité du code.
Inclure des surfaces d’API spécifiques
Vous pouvez configurer les parties de votre codebase sur lesquelles exécuter cette règle, en fonction de leur accessibilité. Par exemple, pour spécifier que la règle doit s’exécuter uniquement sur la surface d’API non publique, ajoutez la paire clé-valeur suivante à un fichier .editorconfig dans votre projet :
dotnet_code_quality.CAXXXX.api_surface = private, internal
Exemple de violation
L’exemple suivant illustre une violation de cette règle.
public class Class1
{
protected string someName;
public string SomeName => someName;
}
L’exemple suivant montre une façon de corriger la violation
public class Class1
{
protected string _someName;
public string SomeName => _someName;
}