Здравствуйте, Qbit86, Вы писали:
Q>Здравствуйте, gandjustas, Вы писали:
G>>Конечно за такой код надо бить по рукам.
Q>Нет, за такой код бить по рукам не надо, это вполне легитимный способ, рекомендуемый анализаторами Roslyn или Rider.
G>>Если свойства не указаны, то трактуется также, как is not null
Q>Нет, is { } не эквивалентен is not null, потому что is not null не вводит имя переменной. Ты не можешь написать
Q>if (stage() is not null stages)
Q> stages.SomeMethod();
Q>
Имя переменной можно отдельно ввести:
if (stage() is not null and var stages)
stages.SomeMethod();
... но есть ньюанс с nullable value типами:
https://sharplab.io/#v2:EYLgtghglgdgNAFxAJwK4wD4AEBMBGAWAChiA3CZAAgHtgArSgXkpgFMB3Sgb0oCFqAHk0oAKWAgD8ASkoAWHJQC+AbmLEoAM1G0GUAM7c+gkC2oIWqADaXKEGABNK5KgjxKZAZQAW1dgBUATwAHVhFXKVUiTW16Sn1DfgETSkNFFJS7R2dKBAVFTx9/YNDciLUiLFlKb19AkIAePwA+ET8cmUYmyiw8AE4w4uoNVqkIoA==... << RSDN@Home 1.0.0 alpha 5 rev. 0>>