CA1511: использование вспомогательной функции аргументаException
Свойство | Значение |
---|---|
Идентификатор правила | CA1511 |
Заголовок | Использование вспомогательной функции аргументаException |
Категория | Ремонтопригодность |
Исправление является критическим или не критическим | Не критическое |
Включен по умолчанию в .NET 8 | Как предложение |
Причина
Код проверка указывает, является 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
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по