CA1716: идентификаторы не должны совпадать с ключевыми словами

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

Причина

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

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

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

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

Это правило проверяет совпадение с ключевыми словами в следующих языках:

  • Visual Basic
  • C#
  • C++/CLI

Для Visual Basic сравнение выполняется без учета регистра, а для других языков — с учетом регистра.

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

Выберите имя, которого нет в списке ключевых слов.

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

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

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

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

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

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

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

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

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

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

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

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

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

dotnet_code_quality.CAXXXX.api_surface = private, internal

Проанализированные типы символов

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

  • Namespace
  • NamedType
  • Method
  • Property
  • Event
  • Parameter

Для разделения значений используйте запятые (,). Значение по умолчанию включает все виды символов из предыдущего списка.

dotnet_code_quality.CA1716.analyzed_symbol_kinds = Namespace, NamedType, Method, Property, Event