Area di riferimento
- Developing applications that use system types and collections
- Manage data in a .NET Framework application by using the .NET Framework 2.0 system types
- Nullable type
I value types non possono contenere un valore nullo. Il tipo Nullable<T> definito nel .NET Framework 2.0 permette di aggiungere al dominio di un value types il valore nullo.
Esempio di utilizzo del tipo Nullable<T>:
Nullable<int> voto = null;
if (voto.HasValue == false)
{
Console.WriteLine("Non hai ancora sostenuto l'esame.");
}
voto = 30;
Console.WriteLine("Il voto dell'esame è {0}", voto);
C# offre una sintassi semplificata per la definizione di un tipo Nullable<T> infatta basta aggiungere un ? dopo il nome del tipo.
int? voto = null;
Assegnare un valore nullable a un semplice value type porta a un problema: cosa succede se provi ad assegnare il valore null a un value type ?
La risposta è che viene sollevata una InvalidOperationException. Per evitare questo è possibile utilizzare l'operatore binario ?? e specificare un valore da sostituire nel caso in cui si tenti di assegnare un valore null.
int risultato = voto ?? -1;