Бөлісу құралы:


CA1510: использование вспомогательной функции argumentNullException

Свойство Значение
Идентификатор правила CA1510
Заголовок Использование вспомогательной функции argumentNullException
Категория Ремонтопригодность
Исправление является критическим или не критическим Не критическое
Включен по умолчанию в .NET 9 Как предложение

Причина

Код проверяет, является 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

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