Es esto:
public MyClass
{
public const string SomeString = "SomeValue";
}
peor que esto:
public MyClass
{
public static string SomeString { get{ return "SomeValue";}}
}
Se puede hacer referencia a ambos de la misma manera:
if (someString == MyClass.SomeString)
...
El segundo, sin embargo, tiene la protección de ser una propiedad. Pero realmente, ¿cuánto mejor es esto que una constante?
He aprendido una y otra vez los peligros de tener campos públicos. Entonces, cuando vi algo de código usando estas constantes en campos públicos, inmediatamente me puse a refactorizarlas a propiedades. Pero a mitad de camino, me pregunté qué beneficio tenía tener las propiedades estáticas sobre las constantes.
¿Algunas ideas?