Avatar ·

Static readonly vs const en C#: ¿cuándo usar qué?

¡Hola a todos! Soy un desarrollador C# principiante y me atormenta una pregunta: ¿cuál es la diferencia entre `static readonly` y `const`? Entiendo que ambos se usan para declarar valores inmutables, pero no tengo idea de cuándo aplicar cada uno. Aquí hay un ejemplo: estoy escribiendo una clase para trabajar con fórmulas matemáticas. Necesito declarar el número Pi y la cantidad de decimales para mostrar los resultados. Lo hice así: ```csharp public class MathHelper { public const double Pi = 3.14159; public static readonly int Precision = 3; } ``` Pero luego otro desarrollador dijo que `const` para `Pi` está bien, pero `static readonly` para `Precision` es extraño. ¿Por qué? Ambos valores no cambian. Y también noté que si uso `const` en otro proyecto, después de cambiar el valor en este ensamblado, el otro no ve la actualización hasta que se recompile. Con `static readonly` eso no pasa. Por favor, explíquenme cuál es la diferencia fundamental. ¿Cuándo se debe usar `const` y cuándo `static readonly`?