Re: C# 8 и null-допустимость - ошибка на миллиард
От: Aquilaware  
Дата: 16.05.20 14:57
Оценка: 53 (1)
Здравствуйте, Shmj, Вы писали:

S>Пишут что сглупили, теперь хотят все исправить. Ваше мнение?


Исправление не получилось, так как оно использует кривую алгебру под капотом. В ней недостает понятия пустого значения ссылочного типа. Приведу пример:

default(int?) = null
default(string?) = null
default(int) = 0
default(string) = ?


Из-за этого, компилятор не знает чем инициализировать значения ненулевых ссылочных типов, т.к. в системе типов нет такого понятия. И пока компилятор не научится понимять что

default(string?) = null
default(string) = string.Empty


вы не сможете это фичу использовать как следует нигде, кроме интерфейсных контрактов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.