readonly
参照は変更されず、そのプロパティのみであるため、参照型変数があります。修飾子を追加しようとするvolatile
と、コンパイルされたものから、両方の修飾子を同じ変数に適用できないことが警告されました。しかし、プロパティを読み取るときにキャッシュの問題が発生したくないため、揮発性である必要があると思います。何か不足していますか?それともコンパイラが間違っていますか?
更新以下のコメントの 1 つでマーティンが述べたように: 参照型オブジェクトの場合、readonly 修飾子と volatile 修飾子の両方が参照にのみ適用され、オブジェクトのプロパティには適用されません。それは私が見逃していたものなので、コンパイラは正しいです。
class C
{
readonly volatile string s; // error CS0678: 'C.s': a field cannot be both volatile and readonly
}