Because a property is actually a method, so other, internal state could change what the property returns. Think of something like an "IsConnectionOpen" flag. The class' internals may change it as if it is not readonly, but to the consuming code, the IsConnectionOpen property should appear readonly.
Do you know where it is in the video? Are they not talking about something like this?
public bool IsOpen{get; private set;}
public void Open(){
try{
// do some complex work
this.IsOpen = true;
}
catch{
this.IsOpen = false;
}
}
public void Close(){
// do some other work
this.IsOpen = false;
}
I see. Maybe they mean "implicit private set"? Otherwise, one of the sibling comments has a good point about the binary compatibility issues with fields vs properties.