CA1720 : Les identificateurs ne doivent pas contenir de noms de typesCA1720: Identifiers should not contain type names

TypeNameTypeName IdentifiersShouldNotContainTypeNamesIdentifiersShouldNotContainTypeNames
CheckIdCheckId CA1720CA1720
CategoryCategory Microsoft.NamingMicrosoft.Naming
Modification avec ruptureBreaking Change RuptureBreaking

CauseCause

Le nom d’un paramètre dans un membre extérieurement visible contient un nom de type de données.The name of a parameter in an externally visible member contains a data type name.

- ou --or-

Le nom d’un membre extérieurement visible contient un nom de type de données spécifiques au langage.The name of an externally visible member contains a language-specific data type name.

Description de la règleRule Description

Noms de paramètres et les membres sont mieux utilisés pour communiquer leur signification que to décrire leur type, qui doit être fournie par les outils de développement.Names of parameters and members are better used to communicate their meaning than to describe their type, which is expected to be provided by development tools. Pour les noms de membres, si un nom de type de données doit être utilisé, utilisez un nom indépendant du langage au lieu d’une langue spécifique.For names of members, if a data type name must be used, use a language-independent name instead of a language-specific one. Par exemple, au lieu du nom de type c# 'int', utilisez le nom de type de données indépendant du langage, Int32.For example, instead of the C# type name 'int', use the language-independent data type name, Int32.

Chaque jeton discret dans le nom du paramètre ou le membre est comparée aux noms de types de données spécifiques au langage suivants, sans respecter la casse :Each discrete token in the name of the parameter or member is checked against the following language-specific data type names, in a case-insensitive manner:

  • BoolBool

  • WCharWChar

  • Int8Int8

  • UInt8UInt8

  • CourteShort

  • UShortUShort

  • IntInt

  • UIntUInt

  • EntierInteger

  • UIntegerUInteger

  • LongueLong

  • ULongULong

  • Non signéUnsigned

  • SignéSigned

  • FloatFloat

  • Float32Float32

  • Float64Float64

    En outre, les noms d’un paramètre sont également vérifiés par rapport aux noms de types de données indépendant du langage suivants, sans respecter la casse :In addition, the names of a parameter are also checked against the following language-independent data type names, in a case-insensitive manner:

  • ObjectObject

  • objObj

  • BooléenBoolean

  • CharChar

  • ChaîneString

  • SByteSByte

  • ByteByte

  • UByteUByte

  • Int16Int16

  • UInt16UInt16

  • Int32Int32

  • UInt32UInt32

  • Int64Int64

  • UInt64UInt64

  • IntPtrIntPtr

  • PTRPtr

  • PointeurPointer

  • UInptrUInptr

  • UPtrUPtr

  • UPointerUPointer

  • SingleSingle

  • DoubleDouble

  • DecimalDecimal

  • GUIDGuid

Comment corriger les violationsHow to Fix Violations

Si le déclenchement sur un paramètre :If fired against a parameter:

Remplacez l’identificateur de type de données dans le nom du paramètre par un terme qui décrit mieux sa signification ou par un terme plus générique, tel que 'value'.Replace the data type identifier in the name of the parameter with either a term that better describes its meaning or a more generic term, such as 'value'.

Si le déclenchement sur un membre :If fired against a member:

Remplacez l’identificateur de type de données spécifiques 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, tel que 'value'.Replace the language-specific data type identifier in the name of the member with a term that better describes its meaning, a language-independent equivalent, or a more generic term, such as 'value'.

Quand supprimer les avertissementsWhen to Suppress Warnings

L’utilisation occasionnelle de noms de membre et de paramètre basée sur le type peut être appropriée.Occasional use of type-based parameter and member names might be appropriate. Toutefois, pour un nouveau développement, aucun autre scénarios se produisent lorsque vous ne devez supprimer un avertissement de cette règle.However, for new development, no known scenarios occur where you should suppress a warning from this rule. Pour les bibliothèques déjà livrées, vous devrez peut-être supprimer un avertissement de cette règle.For libraries that have previous shipped, you might have to suppress a warning from this rule.

CA1709 : La casse des identificateurs doit être correcteCA1709: Identifiers should be cased correctly

CA1708 : Les identificateurs ne doivent pas différer que par leur casseCA1708: Identifiers should differ by more than case

CA1707 : Les identificateurs ne doivent pas contenir de traits de soulignementCA1707: Identifiers should not contain underscores

CA1719 : Les noms des paramètres ne doivent pas être identiques aux noms des membresCA1719: Parameter names should not match member names