Partager via


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

Voir aussi

Référence

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