Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA1511 |
| Заголовок | Использование помощника выброса ArgumentException |
| Категория | Ремонтопригодность |
| Исправление является критическим или не критическим | Неразрывное |
| Включен по умолчанию в .NET 10 | Как предложение |
| Применимые языки | C# и Visual Basic |
Причина
Код проверяет, является null ли аргумент или пустой строкой, а затем условно создает исключение ArgumentException.
Описание правила
Проверки аргументов существенно влияют на размер кода и часто доминируют в коде для небольших функций и наборов свойств. Эти проверки предотвращают инлайнинг и вызывают существенное засорение инструкционного кэша. Вспомогательные методы, такие как ArgumentException.ThrowIfNullOrEmpty(String, String), более простые и эффективные, чем if блоки, создающие новый экземпляр исключения.
Пример
В следующем фрагменте кода показано нарушение CA1511:
void M(string arg)
{
if (string.IsNullOrEmpty(arg))
throw new ArgumentException("", "arg");
}
В следующем фрагменте кода показано исправление:
void M(string arg)
{
ArgumentException.ThrowIfNullOrEmpty(arg);
}
Устранение нарушений
Замените if блок, который создает исключение вызовом ArgumentException.ThrowIfNullOrEmpty(String, String). Кроме того, в Visual Studio используйте меню лампочки для автоматического исправления кода.
Когда лучше отключить предупреждения
Нарушение этого правила можно безопасно скрыть, если вы не беспокоитесь о поддерживаемости вашего кода. Также можно игнорировать нарушения, если это ложноположительный результат.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA1511
// The code that's violating the rule is on this line.
#pragma warning restore CA1511
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA1511.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.