C# ให้ชนิดข้อมูลพิเศษ ชนิดที่เป็นค่าว่าง ซึ่งคุณสามารถกำหนดช่วงของค่าปกติและค่าว่างได้
C # 2.0 แนะนำประเภท nullable ที่อนุญาตให้คุณกำหนด null ให้กับตัวแปรประเภทค่า คุณสามารถประกาศประเภท nullable ได้โดยใช้ Nullable โดยที่ T เป็นประเภท
-
ประเภท Nullable สามารถใช้ได้กับประเภทค่าเท่านั้น
-
คุณสมบัติ Value จะส่ง InvalidOperationException หากค่าเป็น null มิฉะนั้นจะคืนค่ากลับมา
-
คุณสมบัติ HasValue ส่งคืนค่า จริง หากตัวแปรมีค่า หรือเป็นเท็จ หากมีค่าเป็น null
-
คุณสามารถใช้ตัวดำเนินการ ==และ !=ที่มีประเภทเป็นค่าว่างได้เท่านั้น สำหรับการเปรียบเทียบอื่นๆ ให้ใช้คลาส Nullable static
-
ไม่อนุญาตให้ใช้ประเภท nullable ที่ซ้อนกัน เป็นโมฆะ
> i; จะทำให้เกิดข้อผิดพลาดในการคอมไพล์
ตัวอย่างที่ 1
static class Program{ static void Main(string[] args){ string s = "123"; System.Console.WriteLine(s.ToNullableInt()); Console.ReadLine(); } static int? ToNullableInt(this string s){ int i; if (int.TryParse(s, out i)) return i; return null; } }
ผลลัพธ์
123
เมื่อค่า Null ถูกส่งไปยังวิธีการขยายจะไม่พิมพ์ค่าใด ๆ
static class Program{ static void Main(string[] args){ string s = null; System.Console.WriteLine(s.ToNullableInt()); Console.ReadLine(); } static int? ToNullableInt(this string s){ int i; if (int.TryParse(s, out i)) return i; return null; } }