我是新來的C#。我正在比較兩個日期,其中一個是由用戶輸入的,另一個是系統日期時間。我有代碼工作,因爲它的障礙發生的地方是如何迎合空值。基本代碼我已經是:比較C#中的空值的日期
if (mydate.ToShortDateString() != TodaysDate.ToShortDateString())
{
//Error Messaage
}
else
{
//do some code
}
任何反饋將不勝感激
我是新來的C#。我正在比較兩個日期,其中一個是由用戶輸入的,另一個是系統日期時間。我有代碼工作,因爲它的障礙發生的地方是如何迎合空值。基本代碼我已經是:比較C#中的空值的日期
if (mydate.ToShortDateString() != TodaysDate.ToShortDateString())
{
//Error Messaage
}
else
{
//do some code
}
任何反饋將不勝感激
你可以聲明指明MyDate作爲DateTime?
,那麼它可以容納空值。
至於如何處理錯誤,它取決於mydate的空值是否被認爲是錯誤的。如果它是一個錯誤,你可以這樣做:
if (mydate == null || mydate.ToShortDateString() != TodaysDate.ToShortDateString()) {
// error
}
如果它不是一個錯誤,你可以這樣做:
if (mydate != null && mydate.ToShortDateString() != TodaysDate.ToShortDateString()) {
// error
}
如果你不聲明指明MyDate作爲DateTime?
而只是聲明爲DateTime
,那麼你可以檢查DateTime.MinValue
,像這樣(DateTime.MinValue
是默認值的DateTime
變量):
if (mydate == DateTime.MinValue || mydate.ToShortDateString() != TodaysDate.ToShortDateString()) {
// error
}
爲什麼你將它們轉換爲字符串?爲什麼不只是比較他們的日期部分,如date1.Date != date2.Date
。
我想知道。也許只是比較日期時間的日期部分? – 2010-06-16 12:09:06
@Phil:我是這麼認爲的,但這就是'Date'屬性的作用。 – 2010-06-16 12:15:35
使用??運算符:
if ((mydate??DateTime.MinValue).ToShortDateString() != TodaysDate.ToShortDateString())
{
//Error Messaage
}
else
{
//do some code
}
DateTime不可能爲空嗎?日期時間是值類型。你也可以直接比較DateTime對象,即'if(mydate == TodaysDate)' – 2010-06-16 12:05:01
@Phil DateTime不能爲null,但是DateTime?可以是 - 可空類型。同時比較日期時間和日期時間,並不一定只是在OP中隱含的日期。 – 2010-06-16 12:09:53