Javaのfinalは意味がたくさんあるけど、その中で定数性を表すfinalに相当するのがこのconstとreadonly.
C#のconstはかなり潔癖で、変数が少しでも絡むとコンパイルエラーとなる。
int n = 10;
const int i = n == 0 ? 1 : 2;
だけど、readonlyを使えばいいのか、というとそういうわけにもいかない。
readonlyはフィールドにしか使えないため、
int n = 10;
readonly int i = n == 0 ? 1 : 2;
これもエラーとなってしまう。
メソッド内で定数性を表すような方法はないのだろうか・・・
プログラマが気をつけろ、ってことなのかな。