Здравствуйте, gandjustas, Вы писали:
G>Конечно за такой код надо бить по рукам.
Нет, за такой код бить по рукам не надо, это вполне легитимный способ, рекомендуемый анализаторами Roslyn или Rider.
G>Если свойства не указаны, то трактуется также, как is not null
Нет,
is { } не эквивалентен
is not null, потому что
is not null не вводит имя переменной. Ты не можешь написать
if (stage() is not null stages)
stages.SomeMethod();