Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Werttypen, für die möglicherweise kein Wert definiert ist

Zuweilen arbeiten Sie mit einem Werttyp, für den unter bestimmten Umständen kein Wert definiert ist. Beispielsweise muss für ein Feld in einer Datenbank möglicherweise unterschieden werden, ob ihm ein sinnvoller Wert zugewiesen oder niemals ein Wert zugewiesen wurde. Werttypen können auf ihre normalen Werte oder einen NULL-Wert erweitert werden. Eine solche Erweiterung wird als auf NULL festlegbarer Typ bezeichnet.

Jeder auf NULL festlegbare Typ wird anhand der generischen Nullable-Struktur erstellt. Angenommen, eine Datenbank verfolgt arbeitsbezogene Aktivitäten nach. Im folgenden Beispiel wird ein auf NULL festlegbarer Boolean-Typ erstellt und eine Variable von diesem Typ deklariert.

Dim ridesBusToWork As Nullable(Of Boolean) 

Die Variable ridesBusToWork kann den Wert True, den Wert False oder keinen Wert annehmen. Ihr standardmäßiger Anfangswert ist kein Wert, was in diesem Fall bedeuten kann, dass die Informationen über diese Person noch nicht abgerufen wurden. False hingegen kann bedeuten, dass die Informationen abgerufen wurden und die Person nicht mit dem Bus zur Arbeit kommt.

Sie können Variablen und Eigenschaft mit auf NULL festlegbaren Typen deklarieren, und Sie können ein Array mit Elementen eines auf NULL festlegbaren Typs deklarieren. Sie können Prozeduren mit auf NULL festlegbaren Typen als Parameter deklarieren, und Sie können mit der Function-Prozedur einen auf NULL festlegbaren Typ zurückgeben.

Sie können keinen auf NULL festlegbaren Typ für einen Verweistyp, z. B. ein Array, einen String oder eine Klasse, erstellen. Der zugrunde liegende Typ muss ein Werttyp sein. Weitere Informationen finden Sie unter Wert- und Verweistypen.

Verwenden einer Variablen mit auf NULL festlegbarem Typ

Die wichtigsten Member eines auf NULL festlegbaren Typs sind seine HasValue-Eigenschaft und seine Value-Eigenschaft. Bei einer Variablen mit auf NULL festlegbarem Typ können Sie mit HasValue bestimmen, ob die Variable einen definierten Wert enthält. Wenn HasValue True ist, können Sie den Wert von Value lesen. Beachten Sie, dass sowohl HasValue als auch Value ReadOnly-Eigenschaften sind.

Standardwerte

Wenn Sie eine Variable mit auf NULL festlegbarem Typ deklarieren, ist der Standardwert ihrer HasValue-Eigenschaft False. Dies bedeutet, dass die Variable selbst statt des Standardwerts des ihr zugrunde liegenden Werttyps standardmäßig keinen definierten Wert aufweist. Im folgenden Beispiel verfügt die Variable numberOfChildren ursprünglich über keinen definierten Wert, obwohl der Standardwert des Integer-Typs 0 ist.

Dim numberOfChildren As Nullable(Of Integer) 

Ein NULL-Wert empfiehlt sich, um einen undefinierten oder unbekannten Wert anzugeben. Wenn numberOfChildren als Integer deklariert wurde, ist kein Wert vorhanden, um anzugeben, dass die Informationen gegenwärtig nicht verfügbar sind.

Speichern von Werten

Ein Wert wird in einer Variablen oder Eigenschaft mit auf NULL festlegbarem Typ auf die übliche Weise gespeichert. Im folgenden Beispiel wird der im vorherigen Beispiel deklarierten Variablen numberOfChildren ein Wert zugewiesen.

numberOfChildren = 2 

Wenn eine Variable oder Eigenschaft mit auf NULL festlegbarem Typ einen definierten Wert enthält, können Sie veranlassen, dass sie in ihren ursprünglichen Zustand zurückkehrt, in dem kein Wert zugewiesen war. Hierzu legen Sie die Variable oder Eigenschaft auf Nothing fest, wie im folgenden Beispiel veranschaulicht.

numberOfChildren = Nothing 
NoteHinweis

Sie können einer Variablen mit auf NULL festlegbarem Typ zwar Nothing zuweisen, Sie können sie aber nicht auf Nothing überprüfen. Sie müssen ihre HasValue-Eigenschaft auf False überprüfen.

Abrufen von Werten

Um den Wert einer Variablen mit auf NULL festlegbarem Typ abzurufen, überprüfen Sie zunächst ihre HasValue-Eigenschaft, um sicherzustellen, dass sie einen Wert aufweist. Wenn Sie den Wert zu lesen versuchen und HasValue False ist, löst Visual Basic eine InvalidOperationException-Ausnahme aus. Im folgenden Beispiel wird die empfohlene Vorgehensweise zum Lesen der Variablen numberOfChildren aus den vorhergehenden Beispielen veranschaulicht.

If numberOfChildren.HasValue Then 
    MsgBox("There are " & CStr(numberOfChildren) & " children.") 
Else
    MsgBox("It is not known how many children there are.")
End If 

Verwenden von auf NULL festlegbaren Typen mit Daten

Eine Datenbank ist eine der wichtigsten Anwendungsmöglichkeiten für auf NULL festlegbare Typen. Nicht alle Datenbankobjekte unterstützen gegenwärtig auf NULL festlegbare Typen, doch werden sie von den Designer-generierten Tabellenadaptern unterstützt. Siehe "TableAdapter-Unterstützung für Typen mit NULL-Wert" in Übersicht über TableAdapters.

Siehe auch

Anzeigen: