2011-02-25 21 views
5

DateTime.Today es static readonly. Entonces, supuestamente, nunca debería cambiar una vez (estáticamente) instanciado.DateTime.Today y "static readonly"

Sin embargo, si enciendo una aplicación y solicito la fecha a las 11:59 p.m. y nuevamente a las 12:01 a.m., me dará valores diferentes cada vez que la llame, ¿no?

Digamos que quería crear un static readonly "DateTime.TwoDaysFromNow" (solo un ejemplo representativo) que se comporta de la misma manera. .NET me dirá que no puedo b/c es un readonly ¡recuerda! ¿Cómo puedo hacer que funcione?

Muy apreciado, -Alan.

+5

Técnicamente, es un [propiedad de sólo lectura] (http://msdn.microsoft.com/en-us /library/w86s7x04%28v=VS.100%29.aspx) (no * readonly *), ya que solo declara un acceso de 'get'. No se declara utilizando el modificador 'readonly', ya que' readonly' solo se puede aplicar a los campos. – Justin

Respuesta

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

Se puede decir DateTime.Today es una propiedad de la sintaxis de Microsoft de que:

pública estática DateTime Hoy {get; }

+0

Propiedades estáticas, ¿eh? ¡Brillante! Lo aceptaré en 10 minutos, no me dejará antes. – Alan

+0

@Alan tómese su tiempo, tal vez alguien encuentre una respuesta más descriptiva para entonces. –

7

Es una propiedad de sólo lectura estática, no un campo de sólo lectura estática:

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