2011-02-25 45 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; 
    } 
}