>>61
const int MyIntValue = 1;

foo(MyIntValue);

と書くと、生成されるMSILにはfoo(1);と定数が埋め込まれる
#define MyIntValue 1
みたいな感じ。
MyIntValueの定義場所とfooを呼び出している場所が
別のアセンブリでも、やっぱりコンパイル時に定数が展開される。

問題はMyIntValueを別の値に修正したとき。

MyIntValueがどのアセンブリに定義されていようと
利用場所ではコンパイル時に定数が埋め込まれるから、
結果的にMyIntValueを使ってるプログラムは全部コンパイルし直しになる。
つまりそういうところにconstを使うべきじゃない。

readonlyの場合は、実行時に変数から読み出されるので
利用側の再コンパイルは必要ない。