CA1002 : Ne pas exposer de listes génériques
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 qui est conçue pour les performances et pas l'héritage. System.Collections.Generic.List<T> ne contient pas de membres virtuels qui facilitent la modification du comportement d'une classe héritée. 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
CA1005 : Éviter les paramètres excessifs sur les types génériques
CA1010 : Les collections doivent implémenter une interface générique
CA1000 : Ne pas déclarer de membres statiques sur les types génériques
CA1006 : Ne pas imbriquer les types génériques dans les signatures de membre
CA1004 : Les méthodes génériques doivent fournir un paramètre de type
CA1003 : Utiliser les instances du gestionnaire d'événements génériques
CA1007 : Utiliser des classes génériques lorsque cela est approprié