Quelle est la différence entre const et readonly en C# ?
Bonjour à tous ! Je suis débutant en C# et je confonds toujours les mots-clés `const` et `readonly`. Ils semblent tous deux rendre une valeur immuable, mais je sens que ce n'est pas tout à fait ça.
J'ai ce code :
```csharp
public class MyClass
{
public const int MaxAttempts = 5;
public readonly string ConnectionString = "localhost";
public void Test()
{
// MaxAttempts = 10; // Erreur - const ne peut pas être modifié
// ConnectionString = "new"; // Erreur - readonly ne peut pas être modifié
}
}
```
Les deux champs ne peuvent pas être modifiés après l'initialisation. Mais quelle est la différence alors ? J'ai entendu dire que `const` fonctionne à la compilation, tandis que `readonly` fonctionne à l'exécution. Qu'est-ce que cela signifie en pratique ? Quand dois-je utiliser `const` et quand `readonly` ? Et pourquoi puis-je initialiser `readonly` dans le constructeur, mais pas `const` ?
Expliquez-moi, s'il vous plaît, avec des exemples simples. Merci d'avance !
<<>>
Différence clé : moment de l'évaluation et portée
Le