const
今日、フィールドはコンパイル時定数と呼ばれ、readonly
フィールドはランタイム定数と呼ばれる記事を見つけました。2つのフレーズは《Effective C#》から来ています。MSDN と言語仕様で検索しましたが、runtime constantについては何も見つかりませんでした。
攻撃的ではありませんが、ランタイム定数は適切なフレーズではないと思います。
private readonly string foo = "bar";
は、値が「bar」で、値が読み取り専用の「foo」という名前の変数を作成します。ここでは変数であり、constant
. 読み取り専用変数は依然として変数であり、定数にすることはできません。変数と定数は相互に排他的です。
この質問は行き過ぎかもしれませんが、それでも他の人の意見を聞きたいです。どう思いますか?