} namespace ClassLibrary1 {using System;

ыло интересно почемуNullable<T> такое тип значения, если он предназначен для имитации поведения ссылочных типов? Я понимаю такие вещи, как давление GC, но я не чувствую себя убежденным - если мы хотим иметьint действуя как ссылка, мы, вероятно, в порядке со всеми последствиями наличия реального типа ссылки. Я не вижу причин, почемуNullable<T> это не просто коробочная версияT структура.

Как тип значения:

он все еще должен быть упакован и распакован, и более того, бокс должен немного отличаться от «нормальных» структур (для обработки null-значимых обнуляемых как реальныхnull)при проверке на ноль это нужно обрабатывать по-разному (сделано просто вEqualsнет реальной проблемы)это изменчиво, нарушая правило, что структуры должны быть неизменными (хорошо, это логически неизменным)это должно иметь специальное ограничение, чтобы запретить рекурсию, какNullable<Nullable<T>>

Не делаетNullable<T> тип ссылки решить эти проблемы?

Перефразировано и обновлено:

Я немного изменил свой список причин, но мой общий вопрос все еще открыт:

Как будет ссылочный типNullable<T> быть хуже, чем текущая реализация типа значения? Это только давление в GC и «маленькое, неизменное» правило? Мне все еще странно ...

Ответы на вопрос(4)

Ваш ответ на вопрос