#338 – Static Readonly Fields vs. Constants
June 3, 2011 1 Comment
A static readonly field in a class is very similar to a constant. Both expose a constant, static value that is associated with the class, independent of any instances of the class.
We could declare a static readonly field in a Dog class:
public static readonly string TheDogMotto = "Man's Best Friend";
We could also declare this value as a constant:
public const string TheDogMotto = "Man's Best Friend";
The value of a constant must be known at compile-time and specified as part of the declaration.
The value of a static readonly field is set at run-time, so it can be different from run to run. It is specified in either the declaration or within a static constructor.
Use a readonly field for values that you won’t know until run-time or have to calculate. Use a constant for values that are known and never change.