System.Nullable<T> struktúra

Megjegyzés:

Ez a cikk kiegészítő megjegyzéseket tartalmaz az API referenciadokumentációjához.

Az Nullable osztály egy hozzárendelhető nullértéktípust jelöl.

A típus null értékűnek minősül, ha hozzárendelhető egy értékhez, vagy hozzárendelhető null, ami azt jelenti, hogy a típusnak nincs semmilyen értéke. Alapértelmezés szerint minden hivatkozástípus, például String, null értékű, de az összes értéktípus, például Int32nem.

A C#-ban és a Visual Basicben egy értéktípust null értékűként jelölhet meg az ? értéktípus utáni jelöléssel. Például a C#-ban int? vagy a Visual Basic-ben Integer? deklarál egy egész szám típusú értéket, amihez hozzárendelhető a null.

A Nullable<T> struktúra csak az értéktípusokat támogatja null értékű típusként, mivel a referenciatípusok a tervezés során null értékűek.

Az Nullable osztály kiegészítő támogatást nyújt a Nullable<T> struktúra számára. Az Nullable osztály támogatja a null értékű típus mögöttes típusának beszerzését, valamint az összehasonlítási és egyenlőségi műveleteket olyan null értékű típusok párjai esetében, amelyek mögöttes értéktípusa nem támogatja az általános összehasonlítási és egyenlőségi műveleteket.

Alapvető tulajdonságok

A Nullable<T> struktúra két alapvető tagja a HasValue és a Value tulajdonságok. Ha egy HasValueNullable<T> objektum tulajdonsága az true, az objektum értéke a tulajdonsággal Value érhető el. Ha a HasValue tulajdonság false, az objektum értéke nincs meghatározva, és a Value tulajdonság elérésére tett kísérlet InvalidOperationException kivételt dob.

Dobozolás és kicsomagolás

Null értékű típus megadásakor a közös nyelvi futtatókörnyezet automatikusan az objektum mögöttes értékét Nullable<T> adja meg, nem magát az Nullable<T> objektumot. Vagyis ha a HasValue tulajdonság az true, akkor a Value tulajdonság tartalma be van jelölve. Amikor egy nullable típus mögöttes értéke kibontásra kerül, a közös nyelvi futtatókörnyezet létrehoz egy új Nullable<T> struktúrát, amely az alapul szolgáló értékkel van inicializálva.

Ha egy nullable típus HasValue tulajdonsága false, akkor a boxing művelet eredménye null lesz. Következésképpen, ha egy dobozolt, null értékű típust adnak át egy olyan metódusnak, amely objektumargumentumot vár, akkor a metódusnak fel kell készülnie arra, hogy kezelje az esetet, amikor az argumentum null. Amikor a null ki van csomagolva egy null értékű típusba, a közös nyelvi futtatókörnyezet új Nullable<T> struktúrát hoz létre, és a HasValue tulajdonságát inicializálja a false értékkel.

Windows-futtatókörnyezet összetevői

Egy WinMD-kódtárba exportált struktúra tagjaként megadhat egy Nullable<T> típust.