Пользовательское нулевое утверждение в JetBrains RiderC#

Место общения программистов C#
Ответить
Anonymous
 Пользовательское нулевое утверждение в JetBrains Rider

Сообщение Anonymous »

У меня есть специальный метод расширения для проверки значений Guid?:

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

public static bool IsNullOrDefault(this Guid? guid)
{
return !guid.HasValue || guid.value == Guid.Empty;
}
Когда я использую этот метод в своем коде, я ожидаю, что Rider учтет этот метод в возможных утверждениях System.InvalidOperationException. Но это не так.

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

public void Foo(Guid? guid)
{
if (guid.IsNullOrDefault())
{
throw new Exception();
}

var x = guid.Value;
^ There is still a yellow squiggle here, saying Possible System.InvalidOperationException
...
}
Я попытался создать свой собственный шаблон проверки нулевых значений, перезаписав пользовательский шаблон (оператор):

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

if ($EXPR$.IsNullOrDefault()) throw new System.ArgumentNullException($NAME$);
Но это тоже не работает. Как мне настроить Rider так, чтобы мой собственный метод считался эквивалентом guid.HasValue или guid != null?
Ответить

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

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

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

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

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