C#における定数
C#には、コンパイル時定数(const)と、実行時定数(readonly)の2種類がある。
コンパイル時定数の方が高速だが、プリミティブな型(整数、浮動小数点数、enum、文字列)しか使えない。
パフォーマンスが特に重要な箇所や、値が絶対に変わらない場合にはコンパイル時定数を使用してよい。
それ以外の場合は、実行時定数を使用すべき。
コンパイル時定数は、ビルド時にアセンブリに値が埋め込まれる。
そのため、コンパイル時定数の値を変更した場合は、その定数を参照している全てのアセンブリの再ビルドが必要になる。
一方、実行時定数は、実行時に値が解決されるため、定数を定義するアセンブリを入れ替えるだけでよい(参照しているアセンブリの再ビルドは必要ない)。