necesito para implementar esta:¿Cómo declarar una instancia de clase como una constante en C#?
static class MyStaticClass
{
public const TimeSpan theTime = new TimeSpan(13, 0, 0);
public static bool IsTooLate(DateTime dt)
{
return dt.TimeOfDay >= theTime;
}
}
thetime es una constante (en serio :-), al igual que π es, en mi caso sería inútil leerlo de configuración, por ejemplo). Y me gustaría que se inicialice una vez y nunca cambie. Pero C# no parece permitir que una constante sea inicializada por una función (que es un constructor). ¿Cómo superar esto?
Downvoters: explique por qué está bajando una respuesta que resolvió la pregunta del OP. Si no es una buena solución, al menos explica por qué. – ashelvey
porque ser objetivo es muy difícil;) –
Utilizo esto en mi propio código, pero mi personalidad anal retentiva sabe que cada vez que hago esto, hay un objeto viviente largo en memoria de mi aplicación. Tengo una aplicación de larga ejecución que ya usa demasiada memoria y me molesta. Ojalá hubiera un TimeSpan literal que se compilara en mi código. La alternativa es tener un const int, convirtiendo mi valor TimeSpan a milisegundos ... pero matemática. – Dude0001