Compartir a través de


CA1002: No exponer listas genéricas

Nombre de tipo

DoNotExposeGenericLists

Identificador de comprobación

CA1002

Categoría

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 que está diseñada para el rendimiento y no para la herencia.System.Collections.Generic.List<T> no contiene miembros virtuales que facilitan el cambio de comportamiento de una clase heredada.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

CA1005: Evite parámetros excesivos en tipos genéricos

CA1010: Las colecciones deben implementar la interfaz genérica

CA1000: No declarar miembros estáticos en tipos genéricos

CA1006: No anidar tipos genéricos en firmas de miembro

CA1004: Los métodos genéricos deben proporcionar un parámetro de tipo

CA1003: Utilizar instancias genéricas de controlador de eventos

CA1007: Utilizar valores genéricos cuando sea posible

Vea también

Referencia

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