CA1002: не следует раскрывать универсальные списки
TypeName |
DoNotExposeGenericLists |
CheckId |
CA1002 |
Категория |
Microsoft.Design |
Критическое изменение |
Критическое изменение |
Причина
Тип содержит видимый извне член, который является типом System.Collections.Generic.List<T>, возвращает тип System.Collections.Generic.List<T> или содержит в подписи параметр System.Collections.Generic.List<T>.
Описание правила
System.Collections.Generic.List<T>— это универсальная коллекция, которая предназначена для производительности и не наследуется. System.Collections.Generic.List<T>не содержит виртуальных членов, которые упрощают изменение поведения наследуемого класса. Следующие универсальные коллекции предназначены для наследования, поэтому следует раскрывать именно их, а не System.Collections.Generic.List<T>.
Устранение нарушений
Чтобы устранить нарушение этого правила, измените тип System.Collections.Generic.List<T> на одну из универсальных коллекций, предназначенных для наследования.
Отключение предупреждений
Предупреждения этого правила следует отключать только в том случае, если оно возникает для сборки, которая не должна быть повторно используемой библиотекой. Например, можно отключить это предупреждение в приложении, где выполняется настройка производительности и благодаря применению универсальных списков была повышена производительность.
Связанные правила
CA1005: не используйте слишком много параметров в универсальных типах
CA1010: коллекции должны реализовывать универсальный интерфейс
CA1000: не объявляйте статические элементы в универсальных типах
CA1006: не вкладывайте универсальные типы в сигнатуры членов
CA1004: универсальные методы должны предоставлять параметр типа
CA1003: используйте экземпляры обработчика универсальных событий
CA1007: используйте универсальные методы, если это уместно
См. также
Ссылки
Универсальные шаблоны (Руководство по программированию на C#)