#788 – A Backing Field Stores Data for a Property
February 26, 2013 1 Comment
When you create a property, you’re creating a set of accessor methods to read and write the property’s value. You also typically need a place to store the actual property value.
The data member where the property’s value is actually stored is known as a backing field, typically defined as a private field.
When you create an auto-implemented property, you don’t explicitly declare a backing field, but the compiler creates one for you in the IL that is generated. Your code doesn’t have access to the field.
// Backing field not declared, created automatically public int Age { get; set; }
If you create the property explicitly, then you’ll declare the backing field yourself.
// Backing field private int age; // Property public int Age { get { return age; } set { if (value != age) age = value; } }