Nullable Types in C#
hi3x setelah ampir 2 taun kenal C# baru sekarang gua kenal ama tipe yang satu ini. okeh kronologisnya gini, kemaren gua maen2x ama MVC-nya si om scott gutrie dah nemuin sintaks rada aneh kayak dibawah ini : (perhatiin yang dihiglight kuning)
he3x agak aneh ya, kalo kita lihat abis tipe ada tanda tanya baru kemudian nama variabelnya, ternyata itu adalah penulisan dari sebuah nullable types. tulisan aslinya kalo dicodingan biasa adalah kayak gini :
nah karena C# penuh dengan trik2x untuk memudahkan programmer baris kode diatas bisa diganti jadi gini :
okeh jadi gunanya buat apa ya itu tipe nullable? nah kalo dalam contoh di gambar yang pertama (pada MVC si om scott gutrie) adalah agar kita bisa mengetahui apakah nilai dari sebuah integer itu null atau tidak. karena tentunya integer tidak memiliki nilai null dalam valuenya. kalo gak percaya coba deh compile baris ini pasti error :
nah kembali ke contoh di gambar pertama, jadi kalau dalam kasus MVC si om Scott yang banyak ngandelin URL dalam prosesnya bisa aja kan terjadi saat-saat dimana pengguna menulis url gak lengkap sehingga mesin redirect dari MVC ini mengembalikan nilai null untuk parameter page di fungsi list. Nah disinilah kegunaan dari nullable type, kita bisa ngecek apakah nilai integer masukannya ada atau tidak dan melakukan sesuatu berdasarkan fakta tersebut. Tipe nullable ini juga kalo dicek di punya properti yang namanya HasValue. Gunanya adalah untuk ngecek apakah variabel dari tipe tersebut memiliki nilai atau tidak.hi2x menarik juga ini fitur, kok gua baru nyadar sekarang2x ya..
cheers...
PS: kalo mo ngerti lebih lanjut bisa klik di sini, sini atau situ