2011-02-25 87 views
5

DateTime.Todaystatic readonly。所以應該永遠不會改變一次(靜態)實例化。DateTime.Today和「靜態只讀」

但是,如果我啓動一個應用程序,並在晚上11:59分,然後在12:01再次請求日期,那麼每當我打電話時它會正確地給我不同的值,對吧?

比方說,我想創建一個static readonlyDateTime.TwoDaysFromNow」(只是一個代表性的例子),其行爲方式相同。 .NET會告訴我,我不能b/c這是一個readonly記住!我怎樣才能使它工作?

非常感謝, -Alan。

+5

從技術上講,它是一種[只讀屬性(http://msdn.microsoft.com/en-us /library/w86s7x04%28v=VS.100%29.aspx)(不* readonly *),因爲它只聲明一個'get'訪問器。它沒有使用'readonly'修飾符聲明,因爲'readonly'只能應用於字段。 – Justin 2011-02-25 20:01:33

回答

4
public static DateTime TwoDaysFromNow 
{ 
    get { return DateTime.Today.AddDays(2); } 
} 

你可以告訴DateTime.Today是從它微軟的語法屬性:

公共靜態的DateTime今天{獲得; }

+0

靜態屬性,對吧?輝煌!我會在10分鐘內接受它,在此之前它不會讓我接受。 – Alan 2011-02-25 19:59:20

+0

@Alan慢慢來,也許有人會提出一個更具描述性的答案。 – 2011-02-25 20:03:03

7

這是一個靜態只讀屬性,而不是靜態只讀域:

public static DateTime Today 
{ 
    get 
    { 
     return Now.Date; 
    } 
}