CA1724: имена типов не должны совпадать с пространствами имен

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

Причина

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

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

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

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

Переименуйте тип таким образом, чтобы он не совпадал с именем упоминаемого пространства имен, которое имеет внешние видимые типы.

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

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

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

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

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

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

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

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

Пример

namespace MyNamespace
{
    // This class violates the rule
    public class System
    {
    }
}