Код: Выделить всё
ref returnКод: Выделить всё
ref int result = ref GetRef();
if (result is not null) // error CS0037: Cannot convert null to 'int' because it is a non-nullable value type
{
// ...
}
Официальным способом проверки значения null является метод Unsafe.IsNullRef:
Код: Выделить всё
ref int result = ref GetRef();
if (!Unsafe.IsNullRef(ref result))
{
// ...
}
Для контекста в идеале я хотел бы использовать шаблон Try и возвращать ссылку из параметра out:
Код: Выделить всё
if (TryGetRef(out ref int result))
{
// ...
}
Связанная проблема GitHub, касающаяся поддержки синтаксиса is null для ссылок (это не входит в приоритеты Microsoft).
Подробнее здесь: https://stackoverflow.com/questions/798 ... le-is-null
Мобильная версия