2014-02-20 160 views
22

我在C#中很新,我有一個疑問。如何檢查DateTime字段是否爲空或空?

在上我的工作我的應用程序中發現的代碼類似的東西:

if (!String.IsNullOrEmpty(u.nome)) 

此代碼只是檢查U對象的諾姆字段是不是空\空字符串。

好吧,這對我來說非常清楚,但是我能做些什麼來檢查它是否字段不是字符串,而是DateTime對象?

+0

我認爲它很簡單,如果u .Datefield = NULL u.Datefield!?DateTime.MinValue; –

+1

他/她今天早上幾乎和這個一樣:http://stackoverflow.com/questions/21904138/how-to-check-if-a-field-is-not-null – LokiSinclair

+0

@LokiSinclair好趕上 –

回答

57

如果要聲明一個DateTime,那麼默認值爲DateTime.MinValue,因此你必須檢查它像這樣:

DateTime dat = new DateTime(); 

if (dat==DateTime.MinValue) 
{ 
    //unassigned 
} 

如果日期時間爲空,以及這是一個不同的故事:

DateTime? dat = null; 

if (!dat.HasValue) 
{ 
    //unassigned 
} 
7

DateTime是不是標準的可空類型。如果要將null分配給DateTime類型的變量,則必須使用支持空值的DateTime?類型。

如果你只是想測試你的變量設置(如變量保存比默認值),你可以在下面的代碼中使用關鍵字「默認」,如:

if (dateTimeVariable == default(DateTime)) 
{ 
    //do work for dateTimeVariable == null situation 
}