Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

Nullable DateTime ใน C#: การจัดการวันที่ที่อาจเป็นค่า Null

ประเภทข้อมูล 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: ตรวจสอบว่ามีค่าหรือเป็น null
  • dt.Value: ดึงค่า DateTime จริง (โยน Exception หากเป็น null)
  • dt.GetValueOrDefault(): ส่งคืนค่าเริ่มต้น (DateTime.MinValue) หากเป็น null

การใช้ Nullable DateTime ช่วยลดข้อผิดพลาดจากการตรวจสอบค่าเริ่มต้นด้วยตนเอง และทำให้โค้ดอ่านง่ายขึ้น