Détails
Quelle est la différence entre const et readonly en C# ?
Quelle est la différence entre const
et readonly
en C# ?
Quand utiliseriez-vous l'une plutôt que l'autre ?
1255
3
[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é.
[1] : http://blogs.msdn.com/ericlippert/archive/2007/11/13/immutability-in-c-part-one-kinds-of-immutability.aspx
Je crois qu'une valeur
const
est la même pour tous les objets (et doit être initialisée avec une expression littérale), alors quereadonly
peut être différente pour chaque instanciation...