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

Значение
Идентификатор правила CA1005
Категория Оформление
Исправление является критическим или не критическим Критическое

Причина

Видимый извне универсальный тип имеет более двух параметров типа.

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

Описание правила

Чем больше параметров типов содержит универсальный тип, тем сложнее знать и запоминать, что представляет каждый параметр типа. Обычно ситуация очевидна при использовании одного параметра типа, как в List<T>, и в ряде случаев с двумя параметрами типов, как в Dictionary<TKey, TValue>. Если же используется более двух параметров типов, многие пользователи начинают испытывать большие трудности (например, TooManyTypeParameters<T, K, V> в C# или TooManyTypeParameters(Of T, K, V) в Visual Basic).

Устранение нарушений

Чтобы устранить нарушение этого правила, измените структуру так, чтобы использовалось не более двух параметров типа.

Условия для отключения предупреждений

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

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

Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.

#pragma warning disable CA1005
// The code that's violating the rule is on this line.
#pragma warning restore CA1005

Чтобы отключить правило для файла, папки или проекта, задайте уровень серьезности none в файле конфигурации.

[*.{cs,vb}]
dotnet_diagnostic.CA1005.severity = none

Чтобы отключить всю эту категорию правил, задайте уровень серьезности для категории none в файле конфигурации.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Design.severity = none

Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.

Настройка кода для анализа

Используйте следующий параметр, чтобы выбрать части базы кода для применения этого правила.

Этот параметр можно настроить только для некоторого правила, для всех правил или для всех правил в этой категории (конструктор). Дополнительные сведения см. в статье Параметры конфигурации правила качества кода.

Включение определенных контактных зон API

Вы можете настроить, для каких частей базы кода следует выполнять это правило в зависимости от их доступности. Например, чтобы указать, что правило должно выполняться только для закрытой контактной зоны API, добавьте следующую пару "ключ-значение" в файл EDITORCONFIG в своем проекте:

dotnet_code_quality.CAXXXX.api_surface = private, internal

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

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

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

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

См. также раздел