¿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