Well a property has a getter and setter but says nothing about how the data is stored, a field is an explicit declaration of how data is stored and from what I understand we indeed don't have direct access to it except for the "field" keyword in an accessor. However a backing field is auto-generated for most of the properties, it's not like fields don't exist