Почему модификаторы readonly и volatile являются взаимоисключающими?

У меня есть переменная ссылочного типа, котораяreadonly, потому что ссылка никогда не изменится, только ее свойства. Когда я попытался добавитьvolatile модификатор к нему скомпилированный предупредил меня, что он не позволит использовать оба модификатора для одной и той же переменной. Но я думаю, что он должен быть нестабильным, потому что я не хочу проблем с кэшированием при чтении его свойств. Я что-то упустил? Или компилятор не так?

Обновить Как сказал Мартин в одном из комментариев ниже: модификаторы readonly и volatile применяются только к ссылке, а не к свойствам объекта, в случае объектов ссылочного типа. Вот чего мне не хватало, так что компилятор прав.

class C
{
    readonly volatile string s;  // error CS0678: 'C.s': a field cannot be both volatile and readonly
}

Ответы на вопрос(3)

Ваш ответ на вопрос