Hay un debate entre los miembros de mi equipo sobre la declaración de una clase de Constantes. Estamos moviendo las variables constantes a una clase separada como a continuación.
public class Constants
{
public const string StateId = "ST";
public const string CountryId = "CI";
}
Algunos de los miembros de mi equipo sugirieron que declaremos la clase como sellada para evitar la opción de anulación, y algunos sugieren que la marquemos como estática para evitar la creación de instancias de la clase Constant.
Sin embargo, prefiero tenerlo sellado con un constructor estático, ya que nos ayudará a inicializar las variables de solo lectura en futuras necesidades. Por favor, danos un consejo sobre esto.
static
. Esto es completamente ortogonal a la presencia o ausencia de un constructor estático.Respuestas:
No está del todo claro cuál es su pregunta, pero si los valores son realmente constantes, no veo ningún problema con la simple opción de:
El uso
static
en la declaración de clase indica su intención para el propósito de esta clase.Marc Gravell describe algunos de los posibles problemas con las constantes en esta respuesta de desbordamiento de pila . Solo usted sabrá si estos son un problema en su base de código, pero si los valores alguna vez pueden cambiar, use en
public static readonly
lugar deconst
, de lo contrario, cualquier código que haga referencia a las constantes deberá reconstruirse si los valores cambian.fuente
const
, por lo general, la ganancia de rendimiento no compensa los riesgos de posibles problemas en el futuro, en mi humilde opinión. Prefiero usarpublic static readonly
variables para constantes.