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;
}