Сообщение Re[13]: C# [Proposal] init block for safe initialization of от 25.12.2025 15:27
Изменено 25.12.2025 19:53 Serginio1
Re[13]: C# [Proposal] init block for safe initialization of
Здравствуйте, Sinclair, Вы писали:
решить проблему при помощи EmptyNode.
S>>
S>Ничего не получится. Если Prop — non-nullable required, то этот код не скомпилируется. Если он объявлен как nullable — то любой случайный дятел сможет его занулить после строчки #продвинутй nullable disable.
S>Ещё идеи есть?
Еще раз #продвинутый nullable enable это анализатор проверки установки свойств
Он будет выдавать ошибку если не установлены все свойства obj1 и obj2
Написать свой анализатор кода не проблема.
Разумеется основная проверка non-nullable required будет отключена, так за проверку будет отвечать #продвинутый nullable enable
решить проблему при помощи EmptyNode.
S>>
S>>#продвинутый nullable enable
S>> var obj1 = new SomeType1();
S>> var obj2 = new SomeType2();
S>>obj1.Prop = obj2;
S>>obj2.Prop = obj1;
S>>// Local functions are allowed
S>>void Connect() => obj1.Child = obj2;
S>>Connect();
S>>#продвинутый nullable disable
S>>S>Ничего не получится. Если Prop — non-nullable required, то этот код не скомпилируется. Если он объявлен как nullable — то любой случайный дятел сможет его занулить после строчки #продвинутй nullable disable.
S>Ещё идеи есть?
Еще раз #продвинутый nullable enable это анализатор проверки установки свойств
Он будет выдавать ошибку если не установлены все свойства obj1 и obj2
Написать свой анализатор кода не проблема.
Разумеется основная проверка non-nullable required будет отключена, так за проверку будет отвечать #продвинутый nullable enable
Re[13]: C# [Proposal] init block for safe initialization of
Здравствуйте, Sinclair, Вы писали:
решить проблему при помощи EmptyNode.
S>>
S>Ничего не получится. Если Prop — non-nullable required, то этот код не скомпилируется. Если он объявлен как nullable — то любой случайный дятел сможет его занулить после строчки #продвинутй nullable disable.
S>Ещё идеи есть?
Еще раз #продвинутый nullable enable это анализатор проверки установки свойств
Он будет выдавать ошибку если не установлены все свойства obj1 и obj2
Написать свой анализатор кода не проблема.
Разумеется основная проверка non-nullable required будет отключена, так за проверку будет отвечать #продвинутый nullable enable
Если нет отмены то можно и так
Это намного лучше чем городить новый язык, так как может применяться ко всем версиям языка
решить проблему при помощи EmptyNode.
S>>
S>>#продвинутый nullable enable
S>> var obj1 = new SomeType1();
S>> var obj2 = new SomeType2();
S>>obj1.Prop = obj2;
S>>obj2.Prop = obj1;
S>>// Local functions are allowed
S>>void Connect() => obj1.Child = obj2;
S>>Connect();
S>>#продвинутый nullable disable
S>>S>Ничего не получится. Если Prop — non-nullable required, то этот код не скомпилируется. Если он объявлен как nullable — то любой случайный дятел сможет его занулить после строчки #продвинутй nullable disable.
S>Ещё идеи есть?
Еще раз #продвинутый nullable enable это анализатор проверки установки свойств
Он будет выдавать ошибку если не установлены все свойства obj1 и obj2
Написать свой анализатор кода не проблема.
Разумеется основная проверка non-nullable required будет отключена, так за проверку будет отвечать #продвинутый nullable enable
Если нет отмены то можно и так
#nullable disable
#продвинутй nullable enable
код c проверкой на присваивание всем полям не null значений
#продвинутй nullable disable
#nullable enableЭто намного лучше чем городить новый язык, так как может применяться ко всем версиям языка