Qual é a diferença entre const e readonly em C#?
Olá a todos! Sou novo em C# e fico constantemente confuso entre as palavras-chave `const` e `readonly`. Parece que ambas tornam o valor imutável, mas sinto que não é bem assim.\n\nTenho este código:\n\n```csharp\npublic class MyClass\n{\n public const int MaxAttempts = 5;\n public readonly string ConnectionString = \"localhost\";\n \n public void Test()\n {\n // MaxAttempts = 10; // Erro - const não pode ser alterado\n // ConnectionString = \"new\"; // Erro - readonly não pode ser alterado\n }\n}\n```\n\nAmbos os campos não podem ser alterados após a inicialização. Mas qual é a diferença? Ouvi dizer que `const` funciona em tempo de compilação, enquanto `readonly` funciona em tempo de execução. O que isso significa na prática? Quando devo usar `const` e quando devo usar `readonly`? E por que posso inicializar `readonly` no construtor, mas `const` não?\n\nExplique, por favor, com exemplos simples. Desde já, obrigado!\n<<>>\n
Diferença chave: tempo de avaliação e escopo de aplicação
\nA principal