Эта страница относится к тому, когда вы упаковываете структуру Nullable<T>
, а не к значениям внутри самой структуры.
Бокс не участвует в хранении типа, допускающего обнуляемый тип, до тех пор, пока вы не попытаетесь запаковать сам элемент, допускающий обнуляемый тип:
int? a = 42; // no boxing
int? n = null; // no boxing
object nObj = n; // no boxing
object aObj = a; // only now will boxing occur
Это поведение ничем не отличается от случая, когда упаковывается обычный тип значения (за исключением обработки нулевого регистра), поэтому его действительно следует ожидать.