CA1710 : Les identificateurs doivent être dotés d'un suffixe correct
TypeName |
IdentifiersShouldHaveCorrectSuffix |
CheckId |
CA1710 |
Catégorie |
Microsoft.Naming |
Modification avec rupture |
Oui |
Cause
Un identificateur ne présente pas le suffixe correct.
Description de la règle
Par convention, les noms des types qui étendent certains types de base ou qui implémentent certaines interfaces, ou encore des types dérivés de ces types, présentent un suffixe associé au type de base ou à l'interface.
Les conventions d'affectation des noms confèrent un aspect commun aux bibliothèques qui ciblent le Common Language Runtime. Elles réduisent ainsi la durée de l'apprentissage requis par les nouvelles bibliothèques de logiciels et confirment au client que la bibliothèque a été développée par une personne compétente en matière de développement de code managé.
Le tableau suivant répertorie les types de base et les interfaces qui présentent des suffixes associés.
Type de base/interface |
Suffixe |
---|---|
Attribut |
|
EventArgs |
|
Exception |
|
Collection |
|
Dictionary |
|
Collection |
|
Collection ou Queue |
|
Collection ou Stack |
|
Collection |
|
Dictionary |
|
Groupe de données |
|
Collection ou DataTable |
|
Stream |
|
Autorisation |
|
Condition |
|
Délégué de gestionnaire d'événements. |
EventHandler |
Les types qui implémentent ICollection et qui représentent un type généralisé de structures de données, telles que dictionary, stack, ou queue, constituent des noms autorisés qui fournissent des informations explicites sur l'utilisation prévue du type.
Les noms des types qui implémentent ICollection et qui constituent une collection d'éléments spécifiques, se terminent par le mot 'Collection.' Par exemple, une collection d'objets Queue aura pour nom 'QueueCollection.' Le suffixe 'Collection' signifie que les membres de la collection peuvent être énumérés à l'aide de l'instruction foreach (For Each en Visual Basic).
Les noms des types qui implémentent IDictionary se terminent par le mot 'Dictionary', même si le type implémente également IEnumerable ou ICollection. Les conventions d'affectation de noms qui utilisent les suffixes 'Collection' et 'Dictionary' permettent aux utilisateurs de différencier les deux schémas d'énumération suivants.
Les types dotés du suffixe 'Collection' respectent le schéma d'énumération suivant.
foreach(SomeType x in SomeCollection) { }
Les types dotés du suffixe 'Dictionary' respectent le schéma d'énumération suivant.
foreach(SomeType x in SomeDictionary.Values) { }
Un objet DataSet se compose d'une collection d'objets DataTable, qui elle-même se compose de collections d'objets tels qu'entre autres System.Data.DataColumn et System.Data.DataRow. Ces collections implémentent ICollection par le biais de la classe de base System.Data.InternalDataCollectionBase.
Comment corriger les violations
Renommez le type afin qu'il présente pour suffixe le terme approprié.
Quand supprimer les avertissements
Il est possible de supprimer sans risque un avertissement pour utiliser le suffixe 'Collection' si le type constitue une structure de données généralisée susceptible d'être étendue ou de contenir un jeu arbitraire d'éléments divers. Dans ce cas, un nom qui fournit des informations explicites concernant l'implémentation, les performances ou d'autres caractéristiques de la structure de données peut être pertinent (par exemple, BinaryTree). Dans les cas où le type représente une collection d'un type spécifique (par exemple, StringCollection), ne supprimez pas d'avertissement de cette règle car le suffixe indique que le type peut être énuméré au moyen d'une instruction foreach.
Pour les autres suffixes, ne supprimez pas d'avertissement de cette règle. Le suffixe permet d'identifier l'utilisation prévue à partir du nom de type.
Règles connexes
CA1711 : Les identificateurs ne doivent pas porter un suffixe incorrect
Voir aussi
Référence
Indications concernant l'utilisation des attributs