No exponga listas genéricas
Actualización: noviembre 2007
TypeName |
DoNotExposeGenericLists |
Identificador de comprobación |
CA1002 |
Category |
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 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