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 ?

[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

Commentaires (0)

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&#39 ; est toujours constant mais un 'readonly&#39 ; 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

Commentaires (0)

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 que readonly peut être différente pour chaque instanciation...

Commentaires (0)