Здравствуйте, Shmj, Вы писали:
S>Пишут что сглупили, теперь хотят все исправить. Ваше мнение?
Исправление не получилось, так как оно использует кривую алгебру под капотом. В ней недостает понятия пустого значения ссылочного типа. Приведу пример:
default(int?) = null
default(string?) = null
default(int) = 0
default(string) = ?
Из-за этого, компилятор не знает чем инициализировать значения ненулевых ссылочных типов, т.к. в системе типов нет такого понятия. И пока компилятор не научится понимять что
default(string?) = null
default(string) = string.Empty
вы не сможете это фичу использовать как следует нигде, кроме интерфейсных контрактов.