Прочитать на английском

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


CA1711: идентификаторы не должны иметь неверных суффиксов

Свойство Значение
Идентификатор правила CA1711
Заголовок Идентификаторы не должны иметь неправильные суффиксы
Категория Именование
Исправление является критическим или не критическим Критическое
Включен по умолчанию в .NET 9 No

Причина

Идентификатор имеет неправильный суффикс.

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

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

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

В следующей таблице перечислены зарезервированные суффиксы и базовые типы и интерфейсы, с которыми они связаны.

Кроме того, не следует использовать следующие суффиксы:

  • Delegate
  • Enum
  • Impl (вместо нее следует использовать Core)
  • Ex или аналогичный суффикс, чтобы отличить его от более ранней версии того же типа
  • Flag или Flags для типов перечисления

Соглашения об именовании обеспечивают единство вида библиотек, предназначенных для среды CLR. Это сокращает время, необходимое для изучения новых библиотек программного обеспечения, и позволяет клиентам увериться в том, что разработчик библиотеки имеет опыт разработки управляемого кода. Дополнительные сведения см. в разделе Рекомендации по именованию: классы, структуры и интерфейсы.

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

Удалите суффикс из имени типа.

Когда лучше отключить предупреждения

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

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

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

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

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

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

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

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

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

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

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

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

ini
dotnet_code_quality.CAXXXX.api_surface = private, internal

Примечание

Замените XXXX частью CAXXXX идентификатором применимого правила.

Разрешите суффиксы

Вы можете настроить список разрешенных суффиксов, разделив их символом вертикальной черты ("|"). Например, чтобы указать, что правило не должно выполняться для суффиксов Flag и Flags, добавьте следующую пару "ключ-значение" в файл .editorconfig в своем проекте:

ini
dotnet_code_quality.ca1711.allowed_suffixes = Flag|Flags

См. также