Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA1720 |
| Заголовок | Идентификаторы не должны содержать имена типов |
| Категория | Именование |
| Исправление является критическим или не критическим | Срочное |
| Включен по умолчанию в .NET 10 | Нет |
| Применимые языки | C# и Visual Basic |
Причина
Имя параметра в элементе содержит имя типа данных.
–или–
Имя члена содержит имя типа данных, специфичное для языка.
По умолчанию это правило проверяет только видимые извне элементы, но это поведение можно настроить.
Описание правила
Имена параметров и элементов лучше использовать для передачи их значения, чем для описания их типа, которое должно предоставляться средствами разработки. Если для имен членов необходимо использовать имя типа данных, используйте имя, независимое от языка, вместо языка-зависимого. Например, вместо имени типа C# int используйте имя типа данных, не зависящее от языка, Int32.
Каждый отдельный токен в имени параметра или элемента проверяется на соответствие указанным ниже зависящим от языка именам типов данных без учета регистра.
- Bool
- WChar
- Int8
- UInt8
- Короткий
- UShort
- Int
- UInt
- Целое
- UInteger
- Длинный
- ULong
- Без знака
- Подписан
- Флоат
- Float32
- Float64
Кроме того, имена параметров также проверяются на соответствие следующим независящим от языка именам типов данных без учета регистра.
- Объект
- Логический тип данных
- Char
- Строка
- SByte
- Байт
- UByte
- Int16
- UInt16
- Int32
- UInt32
- Int64
- UInt64
- IntPtr
- Ptr
- Указатель
- UInptr
- UPtr
- UPointer
- Одна
- Двойной
- Десятичное число
- GUID
Устранение нарушений
При использовании с параметром:
замените идентификатор типа данных в имени параметра термином, который лучше описывает его значение, или более универсальным термином, например "value".
Если применен к члену:
замените идентификатор зависящего от языка типа данных в имени элемента термином, который лучше описывает его значение, не зависящим от языка эквивалентом или более универсальным термином, например "value".
Example
// This code violates the rule.
public class Short
{
public int Int32 { get; set; }
public Guid Guid { get; set; }
public void Float(int int32) { }
}
Когда лучше отключить предупреждения
Иногда может быть целесообразно использовать имена параметров и элементов на основе типов. Однако при разработке новых приложений нет известных сценариев, когда требуется подавлять предупреждение для этого правила. Для ранее выпущенных библиотек может потребоваться подавить предупреждение от этого правила.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#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_surface. Например, чтобы указать, что правило должно выполняться только для непубличной поверхности API, добавьте следующую пару "ключ-значение" в файл .editorconfig в ваш проект:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Заметка
Замените XXXX частью CAXXXX идентификатором применимого правила.