Membuat Type Data Null
Dengan support terbaru yang terdapat pada .NET, beberapa fitur telah ditambahkan. Salah satunya adalah “Build Typesafe Generic Classes“. Sekarang kita dapat menyelesaikan permasalahan pada type data NULL.
Apakah biasanya anda melakukan pelambangan pada data yang NULL? Saat ini .NET telah melakukan perbaikan dan solve problem.
Nilai NULL yang dikenali oleh Visual Basic sebagai flag istimewa yang menunjukkan data yang tidak muncul. kebanyakan nilai NULL menunjukan bahwa resource atau bisa kita ibaratkan benda tersebut ada tetapi tidak terlihat atau tidak terciptakan. Misalnya pada kode berikut, FileStream berisi Null referensi karena tidak ter-instantiated dengan New Keywords:
Dim fs As FileStream
If fs Is Nothing
Console.WriteLine("Object contains a null reference.")
End If
Core tipe data seperti integer dan string tidak dapat berisi NULL Values. Variable numerik akan otomatis bernilaoi 0 (Nol) dan boolean akan berisi variable False. Sedangkan tipe data String akan berisi kosong (“”) secara otomatis. Pada dasarnya, bila anda melakukan set type data dengan variable Nothing pada code, akan secara otomatis bila terjadi kekosongan data akan dikembalikan pada nilai kosong (0,False,””). Contoh:
Dim j As Integer = Nothing
If j = 0 Then
Console.WriteLine("Non-nullable integer j = " & j)
End If
Bentuk ini kadang-kadang menyebabkan masalah, dimana tidak ada pembeda antara nilai kosong (NULL) dengan nilai yang tidak pernah ada. Secara sederhana saya contohkan, bila anda membuat code dimana anda harus mengembalikan nilai text pada textbox dan pada saat itu diset 0, maka anda tidak dapat tahu, apakah textbox tersebut memang kosong atau 0 adalah nilai awal (Tentu saja bila tidak disertai Flag-flag tertentu sebagai konfigurasi).
.NET 2.0 telah memberikan solusinya, yaitu System.Nullable Class yang dapat melingkupi berbagai macam tipe data. Bila anda membuat suatu definisi yang tidak mempunyai nilai awal (atau nullable) atau tidak melakukan setting nilai dasar, maka anda dapat melakukan test dengan metode Nullable.Hastype() dan anda akan mendapatkan nilai balik Nullable.Value
Berikut contohnya:
Dim i As Nullable(Of Integer)
If Not i.HasValue Then
Console.WriteLine("i is a null value")
End If
i = 100
If i.HasValue Then
Console.WriteLine("Nullable integer i = " & i.Value)
End If
…Memakai Nullable sebagai referensi object sangat bermanfaat walaupun anda tidak membutuhkannya, ini akan tetap dapat memberikan anda keuntungan, yaitu paling tidak kode anda akan lebih mudah untuk dibaca HasValue() yaitu metode yang lebih baik untuk melakukan tes untuk value Nothing. Yang terbaik adalah, anda dapat mengadakan perubahan secara berkesinambungan, karena Class Nullable mempunyai kemampuan untuk melakukan konversi antara Nullable dengan type data itu sendiri.