Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Nullable(Of T)-Struktur

 

Veröffentlicht: Oktober 2016

Stellt einen Werttyp dar, der null zugewiesen werden kann.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

<SerializableAttribute>
Public Structure Nullable(Of T As Structure)

Typparameter

T

Der zugrunde liegende Werttyp des generischen Nullable<'T>-Typs.

NameBeschreibung
System_CAPS_pubmethodNullable(Of T)(T)

Initialisiert eine neue Instanz der Nullable<'T>-Struktur mit dem angegebenen Wert.

NameBeschreibung
System_CAPS_pubpropertyHasValue

Ruft einen Wert ab, der angibt, ob das aktuelle Nullable<'T>-Objekt einen gültigen Wert des zugrunde liegenden Typs hat.

System_CAPS_pubpropertyValue

Ruft den Wert des aktuellen Nullable<'T>-Objekts ab, wenn ihm ein gültiger zugrunde liegender Wert zugewiesen wurde.

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Gibt an, ob das aktuelle Nullable<'T>-Objekt einem angegebenen Objekt entspricht.(Überschreibt ValueType.Equals(Object).)

System_CAPS_pubmethodGetHashCode()

Ruft den Hashcode des Objekts ab, das von der Value-Eigenschaft zurückgegeben wird.(Überschreibt ValueType.GetHashCode().)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodGetValueOrDefault()

Ruft den Wert des aktuellen Nullable<'T>-Objekts oder den Standardwert des Objekts ab.

System_CAPS_pubmethodGetValueOrDefault(T)

Ruft den Wert des aktuellen Nullable<'T>-Objekts oder den angegebenen Standardwert ab.

System_CAPS_pubmethodToString()

Gibt die Textdarstellung des Werts des aktuellen Nullable<'T>-Objekts zurück.(Überschreibt ValueType.ToString().)

NameBeschreibung
System_CAPS_puboperatorSystem_CAPS_staticNarrowing(Nullable(Of T) to T)

Definiert eine explizite Konvertierung einer Nullable<'T>-Instanz in den zugrunde liegenden Wert.

System_CAPS_puboperatorSystem_CAPS_staticWidening(T to Nullable(Of T))

Erstellt ein neues Nullable<'T>-Objekt, das mit einem angegebenen Wert initialisiert wurde.

Ein Typ ist als NULL-Werte zulässt, wenn es kein Wert zugewiesen werden kann oder zugewiesen werden kann null, was bedeutet, dass den Typ verfügt über keinen Wert zurückgibt. Standardmäßig alle Referenztypen, z. B. String, sind NULL-Werte zulässt, aber alle Typen, z. B. Int32, sind nicht.

In c# und Visual Basic, markieren Sie einen Werttyp als NULL-Werte zulässt, mithilfe der ? Notation nach den Werttyp. Beispielsweise int? in c# oder Integer? in Visual Basic deklariert einen Integer-Wert-Typ, der zugewiesen werden kann null.

Die Nullable<'T> -Struktur unterstützt nur einen Werttyp als dem nullable-Typ verwenden, da es sich bei Verweistypen NULL-Werte zulässt, beabsichtigt sind.

Die Nullable Klasse unterstützt die Nullable<'T> Struktur. Die Nullable Klasse unterstützt das Abrufen des zugrunde liegenden Typs von dem nullable-Typ, und Vergleiche und Gleichheitsoperationen Vorgänge Paare von auf NULL festlegbare Typen, deren zugrunde liegende Werttyp, unterstützt keine generischen Vergleich und Gleichheitsoperationen-Vorgänge.

Die zwei grundlegende Elemente von der Nullable<'T> Struktur werden die HasValue und Value Eigenschaften. Wenn die HasValue -Eigenschaft für eine Nullable<'T> Objekt true, der Wert des Objekts zugegriffen werden kann, mit der Value Eigenschaft. Wenn die HasValue Eigenschaft false, der Wert des Objekts ist nicht definiert und beim Zugriff auf die Value -Eigenschaft löst eine InvalidOperationException.

Wenn der nullable-Typ geschachtelt ist, Dialogfelder die common Language Runtime automatisch den zugrunde liegenden Wert der Nullable<'T> -Objekt und nicht die Nullable<'T> Objekt selbst. D. h. wenn die HasValue Eigenschaft ist true, den Inhalt der Value Eigenschaft geschachtelt ist. Wenn ein NULL-Werte zu der zugrunde liegenden Wert mittels Unboxing konvertiert wird, erstellt die common Language Runtime ein neues Nullable<'T> Struktur, die auf den zugrunde liegenden Wert initialisiert.

Wenn die HasValue dem nullable-Typ-Eigenschaft ist false, ist das Ergebnis eines Vorgangs Boxing null. Daher, wenn der geschachtelter nullable-Typ an eine Methode, der eine Objekt-Argument erwartet übergeben wird, dieser Methode muss vorbereitet werden, um den Fall abzudecken, in dem das Argument ist null. Wenn null wird mittels Unboxing zurückkonvertiert, in dem nullable-Typ, die common Language Runtime erstellt eine neue Nullable<'T> Struktur und initialisiert seine HasValue Eigenschaft false.

Beginnend mit der .NET Framework 4.5.1, können Sie enthalten eine Nullable<'T> Typ als Member einer Struktur in einer WinMD-Bibliothek exportiert. Dies wurde bisher nicht unterstützt.

Das folgende Codebeispiel definiert drei Zeilen einer Tabelle in der Microsoft Pubs-Beispieldatenbank. Die Tabelle enthält zwei Spalten, die nicht NULL sind und zwei Spalten, die NULL-Werte zulassen.

Class Sample
    ' Define the "titleAuthor" table of the Microsoft "pubs" database. 
    Public Structure titleAuthor
       ' Author ID; format ###-##-####
        Public au_id As String
        ' Title ID; format AA####
        Public title_id As String
        ' Author ORD is nullable.
        Public au_ord As Nullable(Of Short)
        ' Royalty Percent is nullable.
        Public royaltyper As Nullable(Of Integer)
    End Structure 

    Public Shared Sub Main() 
       ' Declare and initialize the titleAuthor array.
        Dim ta(2) As titleAuthor
        ta(0).au_id = "712-32-1176"
        ta(0).title_id = "PS3333"
        ta(0).au_ord = 1
        ta(0).royaltyper = 100

        ta(1).au_id = "213-46-8915"
        ta(1).title_id = "BU1032"
        ta(1).au_ord = Nothing
        ta(1).royaltyper = Nothing

        ta(2).au_id = "672-71-3249"
        ta(2).title_id = "TC7777"
        ta(2).au_ord = Nothing
        ta(2).royaltyper = 40

       ' Display the values of the titleAuthor array elements, and 
       ' display a legend.
        Display("Title Authors Table", ta)
        Console.WriteLine("Legend:")
        Console.WriteLine("An Author ORD of -1 means no value is defined.")
        Console.WriteLine("A Royalty % of 0 means no value is defined.")
    End Sub

    ' Display the values of the titleAuthor array elements.
    Public Shared Sub Display(ByVal dspTitle As String, _
                              ByVal dspAllTitleAuthors() As titleAuthor) 
        Console.WriteLine("*** {0} ***", dspTitle)
        Dim dspTA As titleAuthor
        For Each dspTA In dspAllTitleAuthors
            Console.WriteLine("Author ID ... {0}", dspTA.au_id)
            Console.WriteLine("Title ID .... {0}", dspTA.title_id)
            Console.WriteLine("Author ORD .. {0}", dspTA.au_ord.GetValueOrDefault(-1))
            Console.WriteLine("Royalty % ... {0}", dspTA.royaltyper.GetValueOrDefault(0))
            Console.WriteLine()
        Next 
    End Sub
End Class 
'This example displays the following output:
'     *** Title Authors Table ***
'     Author ID ... 712-32-1176
'     Title ID .... PS3333
'     Author ORD .. 1
'     Royalty % ... 100
'     
'     Author ID ... 213-46-8915
'     Title ID .... BU1032
'     Author ORD .. -1
'     Royalty % ... 0
'     
'     Author ID ... 672-71-3249
'     Title ID .... TC7777
'     Author ORD .. -1
'     Royalty % ... 40
'     
'     Legend:
'     An Author ORD of -1 means no value is defined.
'     A Royalty % of 0 means no value is defined.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 2.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: