Çok araştırdım ama bir çözüm bulamadım. Başlatılmamış bir değer (null'a eşdeğer) içerebilmesi gereken bir DateTime ile nasıl başa çıkıyorsunuz? DateTime özelliğine değer atanmış ya da atanmamış bir sınıfım var. Özellik sahibini DateTime.MinValue olarak başlatmayı düşünüyordum, bu daha sonra kolayca kontrol edilebilir. Sanırım bu oldukça yaygın bir soru, bunu nasıl yapıyorsunuz?
Normal DateTimes için, onları hiç başlatmazsanız DateTime.MinValue
ile eşleşeceklerdir, çünkü bu bir referans türünden ziyade bir değer türüdür.
Bunun gibi nullable bir DateTime da kullanabilirsiniz:
DateTime? MyNullableDate;
Ya da daha uzun bir form:
Nullable<DateTime> MyNullableDate;
Ve son olarak, herhangi bir türün varsayılanına başvurmak için yerleşik bir yol vardır. Bu, referans türleri için null
döndürür, ancak DateTime örneğimiz için DateTime.MinValue
ile aynı şeyi döndürür:
default(DateTime)
NET 2.0 (veya üstü) kullanıyorsanız nullable türünü kullanabilirsiniz:
DateTime? dt = null;
veya
Nullable<DateTime> dt = null;
sonra da:
dt = new DateTime();
Ve değeri şu şekilde kontrol edebilirsiniz:
if (dt.HasValue)
{
// Do something with dt.Value
}
Ya da şöyle kullanabilirsiniz:
DateTime dt2 = dt ?? DateTime.MinValue;
Daha fazlasını buradan okuyabilirsiniz:
http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx