Почему ReSharper не нравится ArgumentNullException.ThrowIfNullOrEmpty(string)?C#

Место общения программистов C#
Ответить
Anonymous
 Почему ReSharper не нравится ArgumentNullException.ThrowIfNullOrEmpty(string)?

Сообщение Anonymous »

Я использую ReSharper 2024.2, но все равно получаю предложение не использовать следующий код:

Код: Выделить всё

    public async Task GetQueryAsync(string query, bool isToBeValidated = true) where T : IEndPointResponse
{
ArgumentNullException.ThrowIfNullOrEmpty(query);
ArgumentNullException.ThrowIfNullOrWhiteSpace(query);
ArgumentNullException.ThrowIfNull(Logger);
Вместо этого мне предлагается использовать

Код: Выделить всё

    public async Task GetQueryAsync(string query, bool isToBeValidated = true) where T : IEndPointResponse
{
ArgumentException.ThrowIfNullOrEmpty(query);
ArgumentException.ThrowIfNullOrWhiteSpace(query);
ArgumentNullException.ThrowIfNull(Logger);
Или

Код: Выделить всё

    public async Task GetQueryAsync(string query, bool isToBeValidated = true) where T : IEndPointResponse
{
if (string.IsNullOrEmpty(query) || string.IsNullOrWhiteSpace(query)) throw new ArgumentNullException(nameof(query));
ArgumentNullException.ThrowIfNull(Logger);
Это предполагает, что я использую базовые методы ArgumentException, поскольку ArgumentNullException является производным от него, но это ужасно, потому что все мои модульные тесты ожидают ArgumentNullException - и действительно, это более подходящее исключение для бросать. Все шаблонные тесты модульных тестов автоматически проверяют наличие ArgumentNullException, однако в первом примере кода первые две строки в ReSharper по умолчанию считаются неправильными, но не третья строка (ArgumentNullException.ThrowIfNull(Logger)).
Какова причина этого? Это ошибка или мне всегда следует вызывать ArgumentException? Просто ищу некоторые мысли, ведь за 16 лет работы с C#, почти все с ReSharper, у меня никогда не возникало этой проблемы.

Подробнее здесь: https://stackoverflow.com/questions/790 ... mptystring
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»