Правильно ли, что невозможно изменить значение неизменяемого объекта?
У меня есть два сценария относительно readonly
, которые я хочу понять:
-
Что делать, если у меня есть коллекция и отмечаю ее как
readonly
, как показано ниже. Могу ли я позвонить_items.Add
?private readonly ICollection<MyItem> _items;
-
А также для следующей переменной, если позже я вызову
_metadata.Change
, который изменит внутренние значения пары переменных-членов в экземпляреMetadata
. Является ли_metadata
еще неизменным?private readonly Metadata _metadata;
Для обеих переменных выше я полностью понимаю, что я не могу напрямую присваивать им новые значения вне инициализатора и конструкторов.