Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA1724 |
| Заголовок | Имена типов не должны соответствовать пространствам имен |
| Категория | Именование |
| Исправление является критическим или не критическим | Срочное |
| Включен по умолчанию в .NET 10 | Нет |
| Применимые языки | C# и Visual Basic |
Причина
Имя типа соответствует имени пространства имен, на которое указывает ссылка, с одним или несколькими видимыми извне типами. При сравнении имен регистр не учитывается.
Описание правила
Имена созданных пользователем типов не должны совпадать с именами пространств имен, на которые имеются ссылки и которые содержат типы, видимые извне. Нарушение этого правила приводит к уменьшению функциональности библиотеки.
Устранение нарушений
Переименуйте тип таким образом, чтобы он не совпадал с именем упоминаемого пространства имен, которое имеет внешние видимые типы.
Когда лучше отключить предупреждения
При новых разработках нет известных сценариев, в которых следует подавлять предупреждения для этого правила. Прежде чем отменить предупреждение, подумайте, не запутаются ли пользователи библиотеки, если имя будет совпадать. Для доставки библиотек может потребоваться отключить предупреждение для этого правила.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#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
{
}
}