У меня есть специальный метод расширения для проверки значений 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?