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


Не следует раскрывать универсальные списки

Обновлен: Ноябрь 2007

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> на одну из универсальных коллекций, предназначенных для наследования.

Отключение предупреждений

Предупреждения этого правила следует отключать только в том случае, если оно возникает для сборки, которая не должна быть повторно используемой библиотекой. Например, можно отключить это предупреждение в приложении, где выполняется настройка производительности и благодаря применению универсальных списков была повышена производительность.

Связанные правила

Не используйте слишком много параметров в универсальных типах

Коллекции должны реализовать универсальный интерфейс

Не объявляйте статические элементы в универсальных типах

Не вкладывайте универсальные типы в подписи членов

Универсальные методы должны предоставлять параметр типа

Используйте экземпляры обработчика универсальных событий

Используйте универсальные методы, если это уместно

См. также

Ссылки

Универсальные шаблоны (Руководство по программированию на C#)