Сообщение Re: Идея для новой версии C# от 24.12.2025 8:48
Изменено 24.12.2025 8:49 bobby23
Re: Идея для новой версии C#
Здравствуйте, VladD2, Вы писали:
VD>Рефачу сейчас библиотеку, в которой создается огромный граф. Перевожу его на поддержку #nullable enable.
VD>И понимаю, что современная поддержка nullable в C# очень неполноценная. Большинство ссылок в законченном графе не нулабельные, но код его построения императивный и в нем просто невозможно без хаков проинициализировать свойства во время создания объектов. Приходится прибегать к вот такому хаку:
VD>
VD>
может сделать типа такого?
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>
может сделать типа такого?
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>может сделать типа такого?