Ne pas exposer de listes génériques
Mise à jour : novembre 2007
TypeName |
DoNotExposeGenericLists |
CheckId |
CA1002 |
Catégorie |
Microsoft.CSharp |
Modification avec rupture |
Oui |
Cause
Un type contient un membre visible de l'extérieur qui est un type System.Collections.Generic.List<T>, qui retourne un type System.Collections.Generic.List<T> ou dont la signature contient un paramètre System.Collections.Generic.List<T>.
Description de la règle
System.Collections.Generic.List<T> est une collection générique conçue pour les performances et non l'héritage ; par conséquent, il ne contient pas de membres virtuels. Les collections génériques suivantes sont conçues pour l'héritage et doivent être exposées à la place de System.Collections.Generic.List<T>.
Comment corriger les violations
Pour corriger une violation de cette règle, remplacez le type System.Collections.Generic.List<T> par l'une des collections génériques conçues pour l'héritage.
Quand supprimer les avertissements
Ne supprimez pas d'avertissement de cette règle sauf si l'assembly qui déclenche cet avertissement ne doit pas être une bibliothèque réutilisable. Par exemple, il est possible de supprimer sans risque cet avertissement dans une application conçue pour les performances lorsque l'utilisation de listes génériques génère un gain de performances.
Règles connexes
Éviter les paramètres excessifs sur les types génériques
Les collections doivent implémenter l'interface générique
Ne pas déclarer de membres statiques sur les types génériques
Ne pas imbriquer les types génériques dans les signatures de membre
Les méthodes génériques doivent fournir le paramètre de type
Utiliser des instances du gestionnaire d'événements génériques
Utiliser des classes génériques lorsque nécessaire