Compartir a través de


No exponga listas genéricas

Actualización: noviembre 2007

     TypeName

DoNotExposeGenericLists

Identificador de comprobación

CA1002

Category

Microsoft.Design

Cambio problemático

Motivo

Un tipo contiene un miembro visible externamente que es un tipo System.Collections.Generic.List<T>, que devuelve un tipo System.Collections.Generic.List<T> o cuya firma incluye un parámetro System.Collections.Generic.List<T>.

Descripción de la regla

System.Collections.Generic.List<T> es una colección genérica diseñada para el rendimiento, no para la herencia; por consiguiente, no contiene ningún miembro virtual. Las colecciones genéricas siguientes están diseñadas para herencia y se deberían exponer en lugar de System.Collections.Generic.List<T>.

Cómo corregir infracciones

Para corregir una infracción de esta regla, cambie el tipo System.Collections.Generic.List<T> por una de las colecciones genéricas diseñadas para la herencia.

Cuándo suprimir advertencias

No suprima ninguna advertencia de esta regla a menos que el ensamblado que la genera no se vaya a usar como biblioteca reutilizable. Por ejemplo, sería seguro suprimir esta advertencia en una aplicación optimizada para el rendimiento cuando se obtenga una mejora importante del rendimiento usando listas genéricas.

Reglas relacionadas

Evite el exceso de parámetros en los tipos genéricos

Las colecciones deben implementar la interfaz genérica

No declare miembros estáticos en tipos genéricos

No anide los tipos genéricos en firmas de miembro

Los métodos genéricos deben proporcionar el parámetro de tipo

Utilice instancias de control de eventos genéricas

Utilice genéricos cuando resulte apropiado

Vea también

Referencia

Genéricos (Guía de programación de C#)