Di .net 2.0, ada tipe nullable baru, yang dapat digunakan untuk menetapkan nilai null ke tipe nilai dasar, seperti
int?k = 3;//Tipe nilai yang dapat dibatalkan (disebut sebagai tipe nol)
int m = nol;//kesalahan
int?j = null;//Sukses Dari contoh di atas, kita dapat melihat bahwa tipe nilai yang dapat dibatalkan dapat didefinisikan setelah tipe nilai. Di C#, tanda ? ditambahkan setelah tipe dasar, sedangkan di VB.NET In, Anda dapat melakukan ini
Dim dtmVarName As Nullable(Of DateTime)
Dim intVarName As Nullable(Of Integer)
Dim bVarName As Nullable(Of Boolean)
Perlu dicatat bahwa tipe null bukanlah tipe data .NET yang baru.
Faktanya, tipe null adalah kelas generik System.Nullable<T> yang didefinisikan di perpustakaan .NET, dengan T adalah tipe nilai yang dapat diganti.
int?k = 3; dapat juga ditulis sebagai Sistem.Nullable<int> k = 3;
Operasi diimplementasikan melalui kelebihan operator pada kelas ini.
Anda dapat menggunakan hasvalue untuk menentukan apakah tipe kosong telah diberi nilai
if (dtmVarName.HasValue)
{
//...do Something
}
http://www.cnblogs.com/jackyrong/archive/2006/08/26/486796.html