Condividi tramite


Classe System.Nullable

Annotazioni

Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.

La Nullable classe supporta i tipi valore a cui è possibile assegnare null.

Un tipo è detto nullable se può essere assegnato un valore o può essere assegnato null, il che significa che il tipo non ha alcun valore. Per impostazione predefinita, tutti i tipi di riferimento, ad esempio String, sono annullabili, ma tutti i tipi di valore, ad esempio Int32, non lo sono.

In C# e Visual Basic si contrassegna un tipo di valore come nullable usando la ? notazione dopo il tipo di valore. Ad esempio, int? in C# o Integer? in Visual Basic dichiara un tipo di valore intero a cui è possibile assegnare null.

La Nullable classe fornisce supporto complementare per la Nullable<T> struttura. La Nullable classe supporta l'acquisizione del tipo sottostante di un tipo nullable e le operazioni di confronto e uguaglianza su coppie di tipi nullable il cui tipo di valore sottostante non supporta operazioni di confronto ed uguaglianza generiche.

Boxing e unboxing

Quando un tipo nullable viene sottoposto a boxing, il Common Language Runtime effettua automaticamente il boxing del valore sottostante dell'oggetto Nullable<T>, non dell'oggetto Nullable<T> stesso. Ovvero, se la proprietà HasValue è true, il contenuto della proprietà Value viene sottoposto a boxing.

Se la proprietà HasValue di un tipo nullable è false, il risultato dell'operazione di boxing è null. Quando il valore sottostante di un tipo nullable è deframmentato, Common Language Runtime (CLR) crea una nuova struttura Nullable<T> inizializzata al valore sottostante.