CA1720: идентификаторы не должны содержать имен типов
Свойство | Значение |
---|---|
Идентификатор правила | CA1720 |
Заголовок | Идентификаторы не должны содержать имена типов |
Категория | Именование |
Исправление является критическим или не критическим | Критическое |
Включен по умолчанию в .NET 9 | No |
Причина
Имя параметра в элементе содержит имя типа данных.
–или–
Имя элемента содержит имя типа данных, зависящее от языка.
По умолчанию это правило проверяет только видимые извне элементы, но это поведение можно настроить.
Описание правила
Имена параметров и элементов лучше использовать для передачи их значения, чем для описания их типа, которое должно предоставляться средствами разработки. Если для элементов необходимо имя типа данных, используйте не зависящее от языка имя. Например, вместо имени типа C# int
используйте имя типа данных, не зависящее от языка, Int32
.
Каждый отдельный токен в имени параметра или элемента проверяется на соответствие указанным ниже зависящим от языка именам типов данных без учета регистра.
- Bool
- WChar
- Int8
- UInt8
- Короткие
- UShort
- Int
- UInt
- Целое
- UInteger
- Long
- ULong
- Без знака
- Со знаком
- Тип с плавающей запятой
- Float32
- Float64
Кроме того, имена параметров также проверяются на соответствие следующим независящим от языка именам типов данных без учета регистра.
- Object
- Логический
- Char
- Строка
- SByte
- Байт
- UByte
- Int16
- UInt16
- Int32
- UInt32
- Int64
- UInt64
- IntPtr
- Ptr
- Указатель
- UInptr
- UPtr
- UPointer
- Одна
- Двойной
- Десятичное число
- GUID
Устранение нарушений
При возникновении для параметра:
замените идентификатор типа данных в имени параметра термином, который лучше описывает его значение, или более универсальным термином, например "value".
При возникновении для элемента:
замените идентификатор зависящего от языка типа данных в имени элемента термином, который лучше описывает его значение, не зависящим от языка эквивалентом или более универсальным термином, например "value".
Когда лучше отключить предупреждения
Иногда может быть целесообразно использовать имена параметров и элементов на основе типов. Однако в новых разработках нет известных ситуаций, в которых следует отключать вывод предупреждения для этого правила. Может потребоваться отключить вывод предупреждения для ранее выпущенных библиотек.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA1720
// The code that's violating the rule is on this line.
#pragma warning restore CA1720
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none
в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA1720.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.
Настройка кода для анализа
Используйте следующий параметр, чтобы выбрать части базы кода для применения этого правила.
Этот параметр можно настроить только для этого правила, для всех правил, к которым он применяется, или для всех правил в этой категории (именование), к которым она применяется. Дополнительные сведения см. в статье Параметры конфигурации правила качества кода.
Включение определенных контактных зон API
Вы можете настроить, для каких частей базы кода следует выполнять это правило в зависимости от их доступности. Например, чтобы указать, что правило должно выполняться только для закрытой контактной зоны API, добавьте следующую пару "ключ-значение" в файл EDITORCONFIG в своем проекте:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Заметка
Замените XXXX
частью CAXXXX
идентификатором применимого правила.