'Static readonly' vs. 'const'

‘Static readonly’ vs. ‘const’

Les champs public static readonly sont un peu inhabituels ; les propriétés public static (avec uniquement un get) seraient plus courantes (éventuellement soutenues par un champ private static readonly).

Les valeurs const sont directement intégrées au site d’appel ; c’est une arme à double tranchant :

  • c’est inutile si la valeur est récupérée à l’exécution, peut-être depuis une configuration

  • si vous changez la valeur d’une const, vous devez recompiler tous les clients

  • mais cela peut être plus rapide, car cela évite un appel de méthode…

  • …qui aurait parfois pu être inliné par le JIT de toute façon

Si la valeur ne changera jamais, alors const convient parfaitement - Zero etc. font des constantes raisonnables ;p Sinon, les propriétés static sont plus courantes.