[英]Strange .Net datetime issue
設置三元組
DateTime filterDate = endDate.HasValue ? endDate.Value : DateTime.Now.AddDays(7);
非三元
DateTime filterDate;
if (endDate.HasValue)
filterDate = endDate.Value;
else
filterDate = DateTime.Now.AddDays(7);
如果調試這兩個語句,filterDate的值將不相同。 為什么是這樣?
在第一個示例中,filterDate的最終值為01/01/0001。 在第二個例子中,我得到了預期的結果,即filterDate是未來7天的日期時間。
編輯:此時我甚至嘗試設置endDate = null只是為了確保,這是一個屏幕截圖顯示發生了什么。 alt text http://www.freeimagehosting.net/uploads/57bef2e50a.png
我見過的最奇怪的事情。
看起來endDate正在初始化為DateTime.MinValue,你能顯示你聲明endDate的代碼嗎?
還有一個更短的方式:
DateTime filterDate = endDate ?? DateTime.Now.AddDays(7);
我無法重現這一點。 在任何情況下,這是這樣做的首選方式:
DateTime filterDate = endDate ?? DateTime.Now.AddDays(7);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.