Si el compilador sabe que un valor es constante y nunca cambiará, puede compilar el valor directamente en su programa.
Si declara que pi
es una constante, cada vez que vea pi/2
el compilador puede hacer el cálculo e insertar 1.57 ... directamente en el código compilado. Si declara pi
como una variable, cada vez que su programa use pi/2
, la computadora tendrá que hacer referencia a la variable pi y multiplicarla por 0.5, lo que obviamente es más lento.
También debería agregar que C# tiene readonly
que es para valores que el compilador no puede calcular, pero que no pueden cambiar durante la ejecución de su programa. Por ejemplo, si desea una constante ProgramStartTime
, deberá declararla readonly DateTime ProgramStartTime = DateTime.Now
porque debe evaluarse cuando se inicia el programa.
Por último, se puede crear una propiedad de sólo lectura, dándole un captador pero ningún organismo, como esto:
int Months { get { return 12; } }
pero al ser una propiedad que no tiene que tener el mismo valor cada vez que lo leas , de esta manera:
int DaysInFebruary { get { return IsLeapYear ? 29 : 28 } }
¿por qué tener métodos privados cuando solo puede hacer que todo sea público y solo llame a los necesarios? – zxcvbnm
Cuanto más pueda comunicar su * intención * en su código, cuanto más pueda verificar el compilador por usted, más fácil le resultará a otros leerlo y comprenderlo. También hay alguna optimización potencial adicional que puede hacer el compilador. –