CA1002: No exponer listas genéricas
Nombre de tipo |
DoNotExposeGenericLists |
Identificador de comprobación |
CA1002 |
Categoría |
Microsoft.Design |
Cambio problemático |
Sí |
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