veces tiempo temperatura sacarla refrigerar recipientes puedo puede para nevera materna leche fuera dura despues cuanto cuantas como calentar biberon ambiente almacenar c# constants

c# - tiempo - ¿Cuál es la mejor manera de almacenar un grupo de constantes que usa mi programa?



puedo almacenar leche materna en biberon (9)

Es probable que los tenga en una clase estática, con propiedades estáticas de solo lectura.

public static class Routes { public static string SignUp => "signup"; }

Tengo varias constantes que usa mi programa ... string ''s, int '' s, double ''s, etc ... ¿Cuál es la mejor manera de almacenarlas? No creo que quiera un Enum , porque los datos no son del mismo tipo y quiero configurar manualmente cada valor. ¿Debo simplemente almacenarlos todos en una clase vacía? ¿O hay un mejor camino?


Esta es la mejor manera de OMI. Sin necesidad de propiedades, o de solo lectura:

public static class Constants { public const string SomeConstant = "Some value"; }


IMO usando una clase llena de constantes está bien para las constantes. Si cambian de vez en cuando, le recomiendo usar AppSettings en su configuración y la clase ConfigurationManager en su lugar.

Cuando tengo "constantes" que realmente se extraen de AppSettings o similares, igual siempre tendré una clase de "constantes" que envuelve la lectura del administrador de configuración. Siempre es más significativo tener Constants.SomeModule.Setting lugar de tener que recurrir directamente a ConfigurationManager.AppSettings["SomeModule/Setting"] en cualquier lugar que desee consumir dicho valor de configuración.

Puntos de bonificación para esta configuración, dado que SomeModule probablemente sea una clase anidada dentro del archivo Constants, puede usar fácilmente Dependency Injection para inyectar SomeModule directamente en las clases que dependen de él. También podría extraer una interfaz encima de SomeModule y luego crear una dependencia de ISomeModuleConfiguration en su código de consumo, esto le permitiría desacoplar la dependencia de los archivos de Constants e incluso podría facilitar las pruebas, especialmente si estas configuraciones provienen de AppSettings y los cambia usando transformaciones de configuración porque la configuración es específica del entorno.


Lo que me gusta hacer es lo siguiente (pero asegúrese de leer hasta el final para usar el tipo adecuado de constantes ):

internal static class ColumnKeys { internal const string Date = "Date"; internal const string Value = "Value"; ... }

Lee esto para saber por qué const no es lo que quieres. El tipo posible de constantes son:

  • const campos. No lo use en ensamblajes ( public o protected ) si el valor puede cambiar en el futuro porque el valor se codificará en tiempo de compilación en esos otros ensamblajes. Si cambia el valor, los otros ensamblajes usarán el valor anterior hasta que se vuelvan a compilar.
  • campos static readonly
  • propiedad static sin set

Otro voto para usar web.config o app.config. Los archivos de configuración son un buen lugar para constantes como cadenas de conexión, etc. Prefiero no tener que mirar la fuente para ver o modificar este tipo de cosas. Una clase estática que lea estas constantes de un archivo .config podría ser un buen compromiso, ya que permitirá que su aplicación acceda a estos recursos como si estuvieran definidos en código, pero aún le da la flexibilidad de tenerlos en un archivo fácilmente visible / editable. espacio.


Sí, una static class para almacenar constantes estaría bien, a excepción de las constantes que están relacionadas con tipos específicos.


Si estas Constantes son referencias de servicio o interruptores que afectan el comportamiento de la aplicación, los configuraría como configuración de usuario de la Aplicación. De esta forma, si necesitan cambiarse, no es necesario que recompile y aún puede hacer referencia a ellos a través de la clase de propiedades estáticas.

Properties.Settings.Default.ServiceRef


Sugeriría una clase estática con static readonly. Encuentre el fragmento de código a continuación:

public static class CachedKeysManager { public static readonly string DistributorList = "distributorList"; }


Una clase estática vacía es apropiada. Considere usar varias clases, de modo que termine con buenos grupos de constantes relacionadas, y no con un archivo gigante Globals.cs.

Además, para algunas constantes int, considere la notación:

[Flags] enum Foo { }

Como esto permite tratar los valores como banderas .