ใน .net 2.0 มีประเภท nullable ใหม่ ซึ่งสามารถใช้เพื่อกำหนดค่า null ให้กับประเภทค่าพื้นฐานได้ เช่น
int? k = 3;//ประเภทค่า nullable (เรียกว่าประเภท null)
int m = null;//ข้อผิดพลาด
int? j = null;//Success จากตัวอย่างข้างต้น เราจะเห็นว่าประเภทค่า nullable สามารถกำหนดได้หลังประเภทค่า ใน C# เครื่องหมาย ? จะถูกเพิ่มหลังประเภทพื้นฐาน ในขณะที่อยู่ใน VB.NET In คุณสามารถทำสิ่งนี้ได้
Dim dtmVarName As Nullable(Of DateTime)
Dim intVarName As Nullable(Of Integer)
Dim bVarName As Nullable(Of Boolean)
ควรสังเกตว่าประเภท null ไม่ใช่ชนิดข้อมูล .NET ใหม่
ในความเป็นจริง ประเภท null เป็นคลาสทั่วไป System.Nullable<T> ที่กำหนดไว้ในไลบรารี .NET โดยที่ T เป็นประเภทค่าที่ทดแทนได้
int? k = 3; สามารถเขียนเป็น System.Nullable<int> k = 3;
การดำเนินการจะดำเนินการผ่านการโอเวอร์โหลดของคลาสนี้
คุณสามารถใช้ hasvalue เพื่อตรวจสอบว่าประเภทว่างได้รับการกำหนดหรือไม่
หาก (dtmVarName.HasValue)
{
//...do someone
}
http://www.cnblogs.com/jackyrong/archive/2006/08/26/486796.html