Struktur System.Nullable<T>
Artikel ini menyediakan keterangan tambahan untuk dokumentasi referensi untuk API ini.
Kelas Nullable mewakili jenis nilai yang dapat ditetapkan null
.
Jenis dikatakan dapat diubah ke null jika dapat diberi nilai atau dapat ditetapkan null
, yang berarti jenis tidak memiliki nilai apa pun. Secara default, semua jenis referensi, seperti String, dapat diubah ke null, tetapi semua jenis nilai, seperti Int32, tidak.
Di C# dan Visual Basic, Anda menandai jenis nilai sebagai nullable dengan menggunakan ?
notasi setelah jenis nilai. Misalnya, int?
di C# atau Integer?
di Visual Basic mendeklarasikan jenis nilai bilangan bulat yang dapat ditetapkan null
.
Struktur Nullable<T> hanya mendukung penggunaan jenis nilai sebagai jenis nullable karena jenis referensi dapat diubah ke null menurut desain.
Kelas ini Nullable menyediakan dukungan pelengkap untuk Nullable<T> struktur. Kelas ini Nullable mendukung perolehan jenis yang mendasari jenis nullable, dan operasi perbandingan dan kesetaraan pada pasangan jenis nullable yang jenis nilai yang mendasarinya tidak mendukung operasi perbandingan dan kesetaraan generik.
Properti dasar
Dua anggota mendasar struktur Nullable<T> adalah HasValue properti dan Value . HasValue Jika properti untuk Nullable<T> objek adalah true
, nilai objek dapat diakses dengan Value properti . HasValue Jika properti adalah false
, nilai objek tidak terdefinisi dan upaya untuk mengakses Value properti melemparkan InvalidOperationException.
Boxing dan Unboxing
Ketika jenis nullable dikotakkan, runtime bahasa umum secara otomatis kotak nilai yang mendasari Nullable<T> objek, bukan objek itu Nullable<T> sendiri. Artinya, jika HasValue properti adalah true
, konten properti dikotak Value . Ketika nilai yang mendasari jenis nullable tidak dikotak, runtime bahasa umum membuat struktur baru Nullable<T> yang diinisialisasi ke nilai yang mendasarinya.
HasValue
Jika properti dari jenis nullable adalah false
, hasil dari operasi tinju adalah null
. Akibatnya, jika jenis nullable kotak diteruskan ke metode yang mengharapkan argumen objek, metode tersebut harus disiapkan untuk menangani kasus di mana argumen adalah null
. Ketika null
tidak dikotak ke dalam jenis nullable, runtime bahasa umum membuat struktur baru Nullable<T> dan menginisialisasi propertinya HasValue
ke false
.
Komponen runtime Windows
Anda dapat menyertakan Nullable<T> jenis sebagai anggota struktur yang diekspor di pustaka WinMD.