Avatar ·

¿Cuál es la diferencia entre const y readonly en C#?

¡Hola a todos! Soy nuevo en C# y constantemente confundo las keywords `const` y `readonly`. Parece que ambas hacen que el valor sea inmutable, pero siento que no es exactamente así. Tengo este código: ```csharp public class MyClass { public const int MaxAttempts = 5; public readonly string ConnectionString = "localhost"; public void Test() { // MaxAttempts = 10; // Error - const no se puede cambiar // ConnectionString = "new"; // Error - readonly no se puede cambiar } } ``` Ambos fields no se pueden cambiar después de la inicialización. Pero, ¿cuál es la diferencia? He oído que `const` funciona en tiempo de compilación, mientras que `readonly` funciona en tiempo de ejecución. ¿Qué significa esto en la práctica? ¿Cuándo debo usar `const` y cuándo `readonly`? ¿Y por qué puedo inicializar `readonly` en el constructor, pero `const` no? Explíquenme, por favor, con ejemplos simples. ¡Gracias de antemano! <<>>

Diferencia clave: tiempo de evaluación y ámbito de aplicación

La