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)

image

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 :

Nullable<int> okeh = 12;

nah karena C# penuh dengan trik2x untuk memudahkan programmer baris kode diatas bisa diganti jadi gini :

int? okeh = 12;

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 :

int okeh = null;

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

Share this post: | | | |
Published Friday, May 2, 2008 7:54 PM by ronald
Filed under: , ,

Comments

# re: Nullable Types in C#

Friday, May 2, 2008 8:31 PM by Narenda Wicaksono

Nah ini dia nih penyakitnya ngasih nama parameter seenak jidat, hehe..

Cheers,

Narenda Wicaksono

# re: Nullable Types in C#

Friday, May 2, 2008 11:42 PM by Zakka Fauzan Muhammad

Selain itu berguna juga untuk mempermudah akses database, terutama kalo suatu field itu boleh bernilai null... Kalo dalam contoh okeh itu kan, jelas lebih gampang

insertDatabase(okeh);

dibandingkan

if(okeh.HasValue) insertDatabase(okeh)

else insertDatabase(null)

# re: Nullable Types in C#

Saturday, May 3, 2008 5:36 AM by hakimrie

[kutip]

.....adalah agar kita bisa mengetahui apakah nilai dari sebuah integer itu null atau tidak. karena tentunya integer tidak memiliki nilai null dalam valuenya.

[/kutip]

jadi Nullable types itu integer atau bukan Nald?

%peace%

# re: Nullable Types in C#

Monday, May 5, 2008 10:49 AM by irwansyah

Manakah yang lebih baik (dari segi kecepatan ngetik sama performance) antara:

1.

  int a = 0;

  Nullable<int> b = RetrieveFromDB();

  if (b.HasValue)

  {

     a = b.Value;

  }

2.

  int a = 0;

  object b = RetrieveFromDB();

  a = DBUtil.ReplaceNull(b, 0);

# re: Nullable Types in C#

Monday, May 5, 2008 3:11 PM by hakimrie

no. 1 mungkin begini agak lebih ringkas (2 baris)

<code>

int? b = RetrieveFromDB();

int a = (b.HasValue) ? b.Value : 0

</code>

hemat spasi,{ dan } dan gak harus ingat2 DBUtil :P

# re: Nullable Types in C#

Monday, May 5, 2008 3:14 PM by hakimrie

int a = (b.HasValue) ? b.Value : 0;

sorry tadi kurang ; :(

Powered by Community Server (Commercial Edition), by Telligent Systems