Re[3]: Declaration
От: Петрухин Эдуард Россия  
Дата: 27.10.23 06:12
Оценка: 11 (2) +1
Здравствуйте, 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://twitter.com/controlflow/status/1625933876018221069
https://sharplab.io/#v2:EYLgtghglgdgNAFxAJwK4wD4AEBMBGAWAChiA3CZAAgHtgArSgXkpgFMB3Sgb0oCFqAHk0oAKWAgD8ASkoAWHJQC+AbmLEoAM1G0GUAM7c+gkC2oIWqADaXKEGABNK5KgjxKZAZQAW1dgBUATwAHVhFXKVUiTW16Sn1DfgETSkNFFJS7R2dKBAVFTx9/YNDciLUiLFlKb19AkIAePwA+ET8cmUYmyiw8AE4w4uoNVqkIoA==
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.