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é

Voir aussi

Référence

Génériques (guide de programmation C#)