Quelle est la différence entre const
et readonly
en C# ?
Quand utiliseriez-vous l'une plutôt que l'autre ?
[Ceci explique cela][1]. Résumé : const doit être initialisé au moment de la déclaration, readonly peut être initialisé sur le constructeur (et donc avoir une valeur différente selon le constructeur utilisé).
EDIT : Voir la remarque de Gishu ci-dessus pour la différence subtile.
[1] : http://en.csharp-online.net/const,_static_and_readonly
Un const est une constante au moment de la compilation, tandis que readonly permet de calculer une valeur au moment de l'exécution et de la définir dans le constructeur ou l'initialisateur de champ. Ainsi, un 'const' ; est toujours constant mais un 'readonly' ; est en lecture seule une fois qu'il est attribué.
[Eric Lippert][1], de l'équipe C#, fournit de plus amples informations sur les différents types d'immuabilité.