ประเภทข้อมูล DateTime? (Nullable DateTime) ใน C# ช่วยให้คุณกำหนดค่า null ให้กับตัวแปรประเภทวันที่ได้ ซึ่งเป็นประโยชน์เมื่อต้องการแสดงถึง "ไม่มีวันที่" หรือ "วันที่ยังไม่ได้กำหนด" โดยไม่ต้องใช้ค่าเริ่มต้นเช่น DateTime.MinValue
รูปแบบการประกาศ
DateTime? dt = null;
ตัวอย่างการใช้งาน
using System;
class Program
{
static void Main()
{
DateTime? dt = null;
DateFunc(dt);
dt = DateTime.Now;
DateFunc(dt);
dt = null;
Console.WriteLine(dt.GetValueOrDefault());
}
static void DateFunc(DateTime? dt)
{
if (dt.HasValue)
{
Console.WriteLine(dt.Value);
}
else
{
Console.WriteLine(0);
}
}
}
ผลลัพธ์
0 9/17/2018 8:27:07 AM 1/1/0001 12:00:00 AM
คำอธิบาย
dt.HasValue: ตรวจสอบว่ามีค่าหรือเป็น nulldt.Value: ดึงค่า DateTime จริง (โยน Exception หากเป็น null)dt.GetValueOrDefault(): ส่งคืนค่าเริ่มต้น (DateTime.MinValue) หากเป็น null
การใช้ Nullable DateTime ช่วยลดข้อผิดพลาดจากการตรวจสอบค่าเริ่มต้นด้วยตนเอง และทำให้โค้ดอ่านง่ายขึ้น