Dans le livre CLR via c#
Lorsque le code fait référence à un symbole de constante, les compilateurs de rechercher le symbole
les métadonnées de l'assemblée qui définit la constante, extrait de l'
constante de la valeur, et intégrer la valeur dans le émise Intermédiaire
Langue (IL) du code. Car une constante de valeur est directement intégré dans
code, les constantes ne nécessite pas de mémoire à allouer à
runtime. En outre, vous ne pouvez pas obtenir l'adresse d'une constante et vous
on ne peut pas passer d'une constante par référence. Ces contraintes signifie également que
les constantes n'ont pas une bonne croix-assemblée versionnement de l'histoire, de sorte que vous
ne devrait les utiliser que lorsque vous savez que la valeur d'un symbole
ne jamais changer.
Comme nous pouvons le voir, à l'aide de const
a ses avantages quand on sait que la valeur d'un symbole ne changera jamais. Il peut effectuer plus rapidement parce que le CLR n'a pas besoin de régler la valeur.
En effet, après la création de la demande de l'assemblée, l'assemblée DLL
n'est même pas chargé au moment de l'exécution et peuvent être supprimés à partir du disque parce que
le compilateur n'a pas même d'ajouter une référence à la DLL de l'assemblée dans le
l'application de métadonnées.
Comme l'a déjà suggéré par @Sergey Berezovskiy, nous pourrions utiliser static readonly
si vous avez besoin de la CLR pour régler la valeur dynamiquement à l'exécution. La Performance est affectée à cette solution, mais il y a aussi un autre avantage.
En outre, un champ peut être de tout type de données, de sorte que vous n'avez pas à
limitez votre compilateur intégré de types primitifs (comme vous
faire pour les constantes).