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