Информация об изменениях

Сообщение Re: Идея для новой версии C# от 24.12.2025 8:48

Изменено 24.12.2025 8:49 bobby23

Re: Идея для новой версии C#
Здравствуйте, VladD2, Вы писали:

VD>Рефачу сейчас библиотеку, в которой создается огромный граф. Перевожу его на поддержку #nullable enable.


VD>И понимаю, что современная поддержка nullable в C# очень неполноценная. Большинство ссылок в законченном графе не нулабельные, но код его построения императивный и в нем просто невозможно без хаков проинициализировать свойства во время создания объектов. Приходится прибегать к вот такому хаку:

VD>
VD>var obj1 = new SomeType1() { Prop1 = null! };
VD>var obj2 = new SomeType2() { Prop1 = obj1 };

VD>obj1.Prop1 = obj2;
VD>



VD>
VD>var obj1 = new SomeType1() { Prop1 = late_init(obj2) };
VD>var obj2 = new SomeType2() { Prop1 = obj1 };

VD>
VD>

может сделать типа такого?
Re: Идея для новой версии C#
Здравствуйте, VladD2, Вы писали:

VD>Рефачу сейчас библиотеку, в которой создается огромный граф. Перевожу его на поддержку #nullable enable.


VD>И понимаю, что современная поддержка nullable в C# очень неполноценная. Большинство ссылок в законченном графе не нулабельные, но код его построения императивный и в нем просто невозможно без хаков проинициализировать свойства во время создания объектов. Приходится прибегать к вот такому хаку:

VD>
VD>var obj1 = new SomeType1() { Prop1 = null! };
VD>var obj2 = new SomeType2() { Prop1 = obj1 };

VD>obj1.Prop1 = obj2;
VD>



VD>
VD>var obj1 = new SomeType1() { Prop1 = late_set(obj2) };
VD>var obj2 = new SomeType2() { Prop1 = obj1 };

VD>
VD>

может сделать типа такого?