CA1720 : Les identificateurs ne doivent pas contenir de noms de types
Propriété | Value |
---|---|
Identificateur de la règle | CA1720 |
Titre | Les identificateurs ne doivent pas contenir de noms de types |
Catégorie | Dénomination |
Le correctif est cassant ou non cassant | Rupture |
Activé par défaut dans .NET 8 | Non |
Cause
Le nom d’un paramètre dans un membre contient un nom de type de données.
-ou-
Le nom d’un membre contient un nom de type de données spécifique au langage.
Par défaut, cette règle examine uniquement les membres visibles en externe, mais elle est configurable.
Description de la règle
Les noms des paramètres et des membres sont mieux utilisés pour communiquer leur signification que pour décrire leur type, qui est censé être fourni par les outils de développement. Pour les noms des membres, si un nom de type de données doit être utilisé, utilisez un nom indépendant du langage au lieu d’un nom propre au langage. Par exemple, au lieu du nom de type C# int
, utilisez le nom de type de données indépendant du langage Int32
.
Chaque jeton discret dans le nom du paramètre ou du membre est vérifié par rapport aux noms de types de données spécifiques au langage suivants, sans considérer la casse :
- Bool
- WChar
- Int8
- UInt8
- Court
- UShort
- Int
- UInt
- Integer
- UInteger
- Long
- ULong
- Non signé
- Signé
- Float
- Float32
- Float64
En outre, les noms d’un paramètre sont également vérifiés par rapport aux noms de types de données indépendants du langage suivants, sans considérer la casse :
- Object
- Booléen
- Char
- String
- SByte
- Byte
- UByte
- Int16
- UInt16
- Int32
- UInt32
- Int64
- UInt64
- IntPtr
- Ptr
- Pointeur
- UInptr
- UPtr
- UPointer
- Unique
- Double
- Decimal
- Guid
Comment corriger les violations
En cas de déclenchement sur un paramètre :
Remplacez l’identificateur de type de données dans le nom du paramètre par un terme qui décrit mieux sa signification ou un terme plus générique, comme « valeur ».
En cas de déclenchement sur un membre :
Remplacez l’identificateur de type de données propre au langage dans le nom du membre par un terme qui décrit mieux sa signification, un équivalent indépendant du langage ou un terme plus générique, comme « valeur ».
Quand supprimer les avertissements
L’utilisation occasionnelle de noms de paramètres et de membres basés sur le type peut être appropriée. Toutefois, pour le nouveau développement, aucun scénario connu ne se produit lorsque vous devez supprimer un avertissement de cette règle. Pour les bibliothèques précédemment livrées, vous devrez peut-être supprimer un avertissement de cette règle.
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable CA1720
// The code that's violating the rule is on this line.
#pragma warning restore CA1720
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.CA1720.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.
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