Поделиться через


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#)