(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Nullable<T>-Struktur

Stellt einen Werttyp dar, dem null zugewiesen werden kann.

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

[SerializableAttribute]
public struct Nullable<T>
where T : struct

Typparameter

T

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

Der Nullable<T>-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsNullable<T>Initialisiert eine neue Instanz der Nullable<T>-Struktur mit dem angegebenen Wert.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsHasValue Ruft einen Wert ab, der angibt ob das aktuelle Nullable<T>-Objekt über einen gültigen Wert des zugrunde liegenden Typs verfügt.
Öffentliche EigenschaftUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsValueRuft den Wert des aktuellen Nullable<T>-Objekts ab, wenn ihm ein gültiger zugrunde liegender Wert zugewiesen wurde.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEqualsGibt an, ob das aktuelle Nullable<T>-Objekt einem angegebenen Objekt entspricht. (Überschreibt ValueType.Equals(Object).)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetHashCodeRuft den Hashcode des Objekts ab, das von der Value-Eigenschaft zurückgegeben wird. (Überschreibt ValueType.GetHashCode().)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetValueOrDefault()Ruft den Wert des aktuellen Nullable<T>-Objekts oder den Standardwert des Objekts ab.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetValueOrDefault(T)Ruft den Wert des aktuellen Nullable<T>-Objekts oder den angegebenen Standardwert ab.
Öffentliche MethodeUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToStringGibt die Textdarstellung des Werts des aktuellen Nullable<T>-Objekts zurück. (Überschreibt ValueType.ToString().)
Zum Seitenanfang

  NameBeschreibung
Öffentlicher OperatorStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsExplicit(Nullable<T> to T)Gibt den Wert eines angegebenen Nullable<T>-Werts zurück.
Öffentlicher OperatorStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsImplicit(T to Nullable<T>)Erstellt ein neues Nullable<T>-Objekt, das mit einem angegebenen Wert initialisiert wurde.
Zum Seitenanfang

NULL-Werte sind zulässig für Typen, denen entweder ein Wert oder null zugewiesen werden kann, das heißt für Typen, denen nicht notwendigerweise ein Wert zugewiesen werden muss. Standardmäßig sind alle Referenztypen, wie String, auf NULL festgelegt werden, wohingegen alle Werttypen, z Int32, sind nicht.

In C# und Visual Basic markieren Sie einen Werttyp, z auf NULL festgelegt werden, indem Sie die Notation ? nach dem Werttyp verwenden. deklariert beispielsweise int? in C# oder Integer? in Visual Basic einen ganzzahligen Werttyp, der null zugewiesen werden kann.

Die Nullable<T>-Struktur unterstützt die Verwendung von nur einem Werttyp als einen Typ, für den NULL-Werte zulässig sind, da für Verweistypen per Definition NULL-Werte zulässig sind.

Die Nullable-Klasse unterstützt die Nullable<T>-Struktur. Die Nullable-Klasse unterstützt das Abrufen des zugrunde liegenden Typs eines Typs, für den NULL-Werte zulässig sind, und Vergleiche und Gleichheitsoperationen mit Paaren von Typen, für die NULL-Werte zulässig sind und deren zugrunde liegender Werttyp keine generischen Vergleiche oder Gleichheitsoperationen unterstützt.

Wesentliche Eigenschaften

Die zwei wesentlichen Member der Nullable<T>-Struktur sind die HasValue-Eigenschaft und die Value-Eigenschaft. Wenn die HasValue-Eigenschaft für ein Nullable<T>-Objekt true ist, kann der Wert des Objekts mit der Value-Eigenschaft aufgerufen werden. Wenn die HasValue-Eigenschaft false ist, ist der Wert des Objekts nicht definiert, und beim Versuch, die Value-Eigenschaft aufzurufen, wird eine InvalidOperationException ausgelöst.

Boxing und Unboxing

Wenn ein Typ, für den NULL-Werte zulässig sind, geschachtelt wird, schachtelt die Common Language Runtime den zugrunde liegenden Wert des Nullable<T>-Objekts, aber nicht das Nullable<T>-Objekt selbst. Das heißt, wenn die HasValue-Eigenschaft true ist, wird der Inhalt der Value-Eigenschaft geschachtelt. Wenn der zugrunde liegende Wert eines Typs, für den NULL-Werte zulässig sind, mittels Unboxing konvertiert wird, erstellt die Common Language Runtime eine neue Nullable<T>-Struktur, die mit dem zugrunde liegenden Wert initialisiert wird.

Wenn die HasValue-Eigenschaft false ist für einen Typ, für den Nullwerte zulässig sind, dann ist das Ergebnis eines Boxingvorgangs null. Wenn also an eine Methode ein geschachtelter Typ übergeben wird, für den Nullwerte zulässig sind, muss die Methode, die ein Objektargument erwartet, auch den Fall berücksichtigen, in dem das Argument null ist. Wenn beim Unboxing null in einen Typ geschrieben wird, für den Nullwerte zulässig sind, erstellt die Common Language Runtime eine neue Nullable<T>-Struktur und initialisiert deren HasValue-Eigenschaft auf false.

.NET Framework 4.5.1 und Windows Runtime-Komponenten

Ab .NET Framework 4.5.1, können Sie einen Typ Nullable<T> als Member einer Struktur enthalten, die in einer WinMD-Bibliothek exportiert wird. Zuvor war dieses nicht unterstützt.

Im folgenden Codebeispiel werden drei Zeilen einer Tabelle in der Microsoft Pubs-Beispieldatenbank definiert. Die Tabelle enthält zwei Spalten, für die keine NULL-Werte zulässig sind, und zwei Spalten, für die NULL-Werte zulässig sind.


// This code example demonstrates the Nullable<T> class.
// The code example defines a database table in which two columns 
// are nullable. In the application, an array of rows is created 
// and initialized. The table rows could subsequently be 
// written to a database.

using System;

class Sample 
{
// Define the "titleAuthor" table of the Microsoft "pubs" database. 
    public struct titleAuthor 
    {
    // Author ID; format ###-##-####
    public string au_id;
    // Title ID; format AA####
    public string title_id;
    // Author ORD is nullable.
    public short? au_ord;
    // Royalty Percent is nullable.
    public int? royaltyper;
    }

    public static void Main() 
    {
// Declare and initialize the titleAuthor array.
    titleAuthor[] ta = new titleAuthor[3];
    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 = null;
    ta[1].royaltyper = null;

    ta[2].au_id = "672-71-3249";
    ta[2].title_id = "TC7777";
    ta[2].au_ord = null;
    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.");
    }

// Display the values of the titleAuthor array elements.
    public static void Display(string dspTitle, 
                               titleAuthor[] dspAllTitleAuthors)
    {
    Console.WriteLine("*** {0} ***", dspTitle);
    foreach (titleAuthor 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 ?? -1);
       Console.WriteLine("Royalty % ... {0}", dspTA.royaltyper ?? 0);
       Console.WriteLine();       
       }
    }
}

/*
This code example produces the following results:

*** 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.

*/


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft