CA1505. Избегайте кода, неудобного для поддержки
Свойство | Значение |
---|---|
Идентификатор правила | CA1505 |
Заголовок | Избегайте кода, неудобного для поддержки |
Категория | Ремонтопригодность |
Исправление является критическим или не критическим | Не критическое |
Пороговое значение по умолчанию | 10 |
Включен по умолчанию в .NET 9 | No |
Причина
Тип, метод, поле, свойство или событие имеет низкое значение индекса удобства обслуживания.
Описание правила
Правило сообщает о нарушении, если индекс доступности типа, метода, поля, свойства или события меньше 10. Однако пороговое значение можно настроить.
Индекс удобства поддержки вычисляется с помощью следующих метрик: строк кода, объема программы и цикломатической сложности. (Том программы — это мера сложности понимания типа или метода, основанного на количестве операторов и операндов в коде. Цикломатическая сложность — это мера структурной сложности типа или метода. Дополнительные сведения о метриках кода см. в разделе Измерение сложности и удобства поддержки управляемого кода.
Низкий индекс удобства поддержки означает, что тип или метод скорее всего трудно поддерживать, поэтому его следует переработать.
Устранение нарушений
Чтобы устранить это нарушение, переработайте тип или метод и попробуйте разделить его на меньшие и более специализированные типы или методы.
Когда лучше отключить предупреждения
Это предупреждение можно отключить, если тип или метод невозможно разделить, или если он считается удобным для поддержки, несмотря на большой размер.
Примечание.
В этом правиле могут отображаться предупреждения о ложноположительных срабатываниях, если применяются все указанные ниже действия.
- Вы используете Visual Studio 2022 версии 17.5 или более поздней версии с более старой версией пакета SDK для .NET, то есть .NET 6 или более ранней версии.
- Вы используете анализаторы из пакета SDK для .NET 6 или более старой версии пакетов анализатора, например Microsoft.CodeAnalysis.FxCopAnalyzers.
Ложные срабатывания обусловлены критическим изменением компилятора C#. Рассмотрите возможность использования более нового анализатора, содержащего исправление для предупреждений ложноположительных срабатываний. Обновление до Microsoft.CodeAnalysis.NetAnalyzers версии 7.0.0-preview1.22464.1 или более поздней версии или использование анализаторов из пакета SDK для .NET 7.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA1505
// The code that's violating the rule is on this line.
#pragma warning restore CA1505
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none
в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA1505.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.
Настройка порогового значения
Пороговое значение, с помощью которого это правило запускается, и типы символов для анализа. Допустимые типы символов:
Assembly
Namespace
Type
Method
Field
Event
Property
Создайте текстовый файл с именем CodeMetricsConfig.txt.
Добавьте требуемое пороговое значение в текстовый файл в следующем формате:
CA1505: 20
В этом примере правило настраивается для запуска, если индекс доступности типа, метода, поля, свойства или события меньше 20.
CA1505(Method): 5 CA1505(Type): 15
В этом примере правило настраивается для запуска, если индекс удобства обслуживания метода меньше 5 или индекс удобства обслуживания типа меньше 15. В этом файле конфигурации правило будет продолжать отмечать поля, свойства и события, индекс обслуживания которых меньше порогового значения по умолчанию (10).
В файле проекта пометьте действие сборки файла конфигурации как AdditionalFiles. Например:
<ItemGroup> <AdditionalFiles Include="CodeMetricsConfig.txt" /> </ItemGroup>