Поскольку автоматически реализуемые свойства генерируют собственное резервное хранилище для значений свойств. У вас нет доступа к внутреннему магазину.
Реализация свойства с
- просто получить: означает, что вы можете только получить значения. Вы никогда не сможете установить значение свойства (даже в содержащем классе)
- просто установить: означает, что вы можете установить только значения. Вы не можете получить значение свойства.
для обычного свойства
private int _data;
public int Data{ get { return _data } };
Здесь родительский класс может делать следующее где-то еще в классе (чего нельзя сделать с помощью автоматического реквизита)
_data = 100;
Примечание. Вы можете определить автоподдержку следующим образом (именно так я чаще всего ее использую).
public int Data { get; private set;}
Это означает, что свойство не может быть установлено внешними клиентами класса. Однако сам содержащий класс может устанавливать свойство несколько раз с помощью this.Data = x;
в определении класса.