Esporta (0) Stampa
Espandi tutto

Classe Nullable

Nota: questa classe è stata introdotta con .NET Framework versione 2.0.

Supporta un tipo di valore a cui può essere assegnato riferimento null (Nothing in Visual Basic) come tipo di riferimento. Questa classe non può essere ereditata.

Spazio dei nomi: System
Assembly: mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)] 
public static class Nullable
/** @attribute ComVisibleAttribute(true) */ 
public final class Nullable
ComVisibleAttribute(true) 
public final class Nullable

Un tipo viene definito nullable se è possibile assegnare a esso un valore o riferimento null (Nothing in Visual Basic), che significa che il tipo non presenta alcun valore. Di conseguenza, un tipo nullable può esprimere un valore oppure esprimere che non è presente alcun valore. Ad esempio, un tipo di riferimento quale String è nullable, a differenza di un tipo di valore quale Int32. Un tipo di valore non può essere nullable poiché dispone di capacità sufficiente a esprimere solo i valori appropriati per tale tipo, non dispone della capacità aggiuntiva richiesta per esprimere un valore null.

La classe Nullable fornisce supporto aggiuntivo per la struttura Nullable. Grazie alla classe Nullable è possibile ottenere il tipo sottostante di un tipo nullable, nonché eseguire operazioni di confronto e uguaglianza su coppie di tipi nullable il cui valore sottostante non supporta operazioni generiche di confronto e uguaglianza.

Scenario

Utilizzare i tipi nullable per rappresentare elementi presenti o meno a seconda della circostanza. Ad esempio, un attributo facoltativo di un tag HTML può essere presente in un tag ma non in un altro oppure una colonna nullable di una tabella di database può essere presente in una riga ma non in un'altra.

È possibile rappresentare l'attributo o la colonna come campo in una classe e definire il campo come tipo di valore. Il campo può contenere tutti i valori validi per l'attributo o per la colonna, ma non può supportare un valore aggiuntivo che indica che l'attributo o la colonna non è presente. In questo caso, definire il campo come tipo nullable anziché come tipo di valore.

Boxing e unboxing

Quando si esegue il boxing di un tipo nullable, Common Language Runtime esegue automaticamente il boxing del valore sottostante dell'oggetto Nullable, non dell'oggetto Nullable stesso. Se pertanto la proprietà HasValue è impostata su true, il contenuto della proprietà Value viene sottoposto a boxing. Se il valore della proprietà HasValue è false, il valore riferimento null (Nothing in Visual Basic) verrà sottoposto a boxing. Quando il valore sottostante di un tipo nullable viene sottoposto a unboxing, Common Language Runtime crea una nuova struttura Nullable inizializzata in base al valore sottostante.

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0

.NET Compact Framework

Supportato in: 2.0

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft