Because the auto-implemented properties generate their own backing store for the property values. You have no access to the internal store.
Implementing a property with
- just get : means you can only retrieve the values. You can’t ever set the property value (even in the containing class)
- just set : means you can only set the values. You can’t retrieve the property value.
for a normal property
private int _data;
public int Data{ get { return _data } };
Here the parent class can do the following somewhere else in the class ( which it can’t with auto props)
_data = 100;
Note: You can define an auto-prop like this (which is how I use it the most).
public int Data { get; private set;}
This means that the property can’t be set by external clients of the class. However the containing class itself can set the property multiple times via this.Data = x;
within the class definition.