Los tipos de referencia no pueden incluirse en Nullable<T>
debido a una restricción where T : struct
en el genérico.
Las razones de esta restricción son:
- tipos de referencia son ya anulable por definición, y
- anulable no es muy eficiente del espacio, sino más bien una nulabilidad "lógica".
Nullable<T>
tiene una propiedad bool HasValue
y un tipo T
propiedad Value
que contiene el valor de tipo de valor real.
Incluso si HasValue == false
(es decir, si la variable envolvente con nulos está establecida en null
), TODAVÍA consume el espacio para el tipo de valor como si estuviese allí.
Es lógicamente anulable que le permite especificar el comportamiento opcional, pero no guarda ningún espacio. Esto es muy similar a cómo boost :: optional funciona en C++.
¡qué respuesta!, Gracias ..... fácil de explicar – Ajay2707