Nullable Value Type
Eintrag zuletzt aktualisiert am: 25.11.2011
Während
Referenztypen bereits in
.NET 1.x den Zustand "null" als Repräsentanz des Zustandes "nicht vorhanden/nicht gesetzt" annehmen konnten, war dies für
Wertetypen nicht vorgesehen. Ab
.NET 2.0 existiert ein Hilfskonstrukt, um auch
Wertetypen den Wert null zuweisen zu können.
In
.NET 2.0 ist ein auf Null setzbarer
Wertetyp eine generische Struktur, die aus dem eigentlich Wert (Value) und einen Hilfsflag HasValue (Typ boolean) besteht, das anzeigt, ob der Wert des Typs Null ist. Wenn HasValue den Wert false besitzt, führt ein Zugriff auf Value zu einer
Ausnahme.
Die generische Struktur zur Aufnahme beliebiger
Wertetypen heißt System.Nullable. In C# existiert ein besonderes Sprachkontrukt (Anhängen eines Fragezeichens an den Typ bei der Deklaration), das die Schreibweise verkürzt.
C# (Langform)
---
System.Nullable<Int32> c = null;
C# (Kurzform)
---
int? c = null;
VB
.NET
---
Dim c As New System.Nullable(Of Integer)
c = Nothing
VB
.NET (Kurzform)
---
Dim c? As Integer = Nothing