Compartir a través de


Clase System.Nullable

Nota:

En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.

La Nullable clase admite tipos de valor que se pueden asignar null.

Un tipo se considera anulable si se le puede asignar un valor o se le puede asignar null, lo que significa que el tipo no tiene ningún valor. De forma predeterminada, todos los tipos de referencia, como String, admiten valores NULL, pero todos los tipos de valor, como Int32, no.

En C# y Visual Basic, se marca un tipo de valor como que acepta valores nulos usando la notación ? después del tipo de valor. Por ejemplo, int? en C# o Integer? en Visual Basic declara un tipo de valor entero al que se puede asignar null.

La Nullable clase proporciona compatibilidad complementaria para la Nullable<T> estructura. La Nullable clase admite la obtención del tipo subyacente de un tipo que acepta valores NULL y las operaciones de comparación e igualdad en pares de tipos que aceptan valores NULL cuyo tipo de valor subyacente no admite operaciones genéricas de comparación e igualdad.

Boxing y unboxing

Cuando se empaqueta un tipo que es anulable, el entorno de ejecución común empaqueta automáticamente el valor subyacente del Nullable<T> objeto, no el objeto en sí Nullable<T>. Es decir, si la propiedad HasValue es true, el contenido de la propiedad Value se convierte en 'boxing'.

Si la propiedad HasValue de un tipo que acepta valores nulos es false, el resultado de la operación de conversión boxing es null. Cuando el valor subyacente de un tipo que acepta valores NULL está desencapsulado, "Common Language Runtime" crea una nueva Nullable<T> estructura inicializada con el valor subyacente.