Ivan Ivan - 2 months ago 9
C# Question

How to declare a class instance as a constant in C#?

I need to implement this:


static class MyStaticClass
{
public const TimeSpan theTime = new TimeSpan(13, 0, 0);
public static bool IsTooLate(DateTime dt)
{
return dt.TimeOfDay >= theTime;
}
}


theTime is a constant (seriously :-), like π is, in my case it'd be pointless to read it from settings, for example). And I'd like it to be initialized once and never change. But C# doesn't seem to allow a constant to be initialized by a function (which a constructor is). How to overcome this?

Answer

Using readonly instead of const can be initialized and not modified after that. Is that what you're looking for?