¿Por qué Nullable <T> es una estructura?

Me preguntaba por quéNullable<T> es un tipo de valor, si está diseñado para imitar el comportamiento de los tipos de referencia? Entiendo cosas como la presión de GC, pero no me siento convencido, si queremos tenerint actuando como referencia, probablemente estemos de acuerdo con todas las consecuencias de tener un tipo de referencia real. No puedo ver por quéNullable<T> no es solo una versión en caja deT estructura

Como tipo de valor:

todavía necesita estar en caja y sin caja, y más, el boxeo debe ser un poco diferente que con estructuras "normales" (para tratar los valores nulos anulables como realesnull)debe tratarse de manera diferente cuando se verifica si hay nulo (hecho simplemente enEquals, no hay problema real)es mutable, rompiendo la regla de que las estructuras deben ser inmutables (ok, es lógicamente inmutable)necesita tener una restricción especial para no permitir la recursividad comoNullable<Nullable<T>>

No haceNullable<T> un tipo de referencia resuelve esos problemas?

reformulado y actualizado:

He modificado un poco mi lista de razones, pero mi pregunta general sigue abierta:

¿Cómo será el tipo de referenciaNullable<T> ser peor que la implementación del tipo de valor actual? ¿Es solo presión GC y regla "pequeña, inmutable"? Todavía me parece extraño ...

Respuestas a la pregunta(4)

Su respuesta a la pregunta