Пользовательское нулевое утверждение в 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?

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