voluntad tener ser persona pasos para inconstante fuerza estudiar disciplina dejar constante como c# .net const

c# - tener - disciplina en 3 pasos



La recepciĆ³n de ''ExpresiĆ³n que se asigna debe ser constante'' cuando es (5)

¿Hay una manera de usar algo como esto:

private const int MaxTextLength = "Text i want to use".Length;

Creo que sería más legible y menos propenso a errores que usar algo como:

private const int MaxTextLength = 18;

¿Hay alguna forma de que la longitud del texto sea la fuente de una variable constante?


¿El valor necesita ser una constante? ¿Funcionaría una lectura estática para su caso?

private static readonly int MaxTextLength = "Text i want to use".Length;

Esto le permitirá escribir el código de manera similar a su primer ejemplo.


Desafortunadamente, si está usando la palabra clave const, el valor en el lado derecho de ''='' debe ser una constante de compilación. El uso de una "cadena" .length requiere un código .NET para ejecutarse, que solo puede ocurrir cuando la aplicación se está ejecutando, no durante el tiempo de compilación.

Puedes considerar hacer el campo solo lectura en lugar de una constante.


No estoy seguro de por qué quieres hacer esto, pero ¿qué tal ...

private const string MaxText = "Text i want to use."; private static int MaxTextLength { get { return MaxText.Length; } }


Use static readonly lugar de const .

Las constantes tienen que ser constantes de tiempo de compilación.


private readonly static int MaxTextLength = "Text i want to use".Length;