How can I access the backing variable of an auto-implemented property?

The aim of the new automatic properties is to reduce the amount of boilerplate code you need to write when you just have a simple property that doesn’t need any special logic in the get or the set.

If you want to access the private member that these properties use, that’s usually for a few reasons:

  • You need to more than just a simple get/set – in this case, you should just avoid using automatic properties for this member.
  • You want to avoid the performance hit of going through the get or set and just use the member directly – in this case, I’d be surprised if there really was a performance hit. The simple get/set members are very very easy to inline, and in my (admittedly limited) testing I haven’t found a difference between using the automatic properties and accessing the member directly.
  • You only want to have public read access (i.e. just a ‘get’) and the class write to the member directly – in this case, you can use a private set in your automatic property. i.e.

    public class MyClass
    {
        public int Age {get; private set;} 
    }

This usually covers most the reasons for wanting to directly get to the backing field used by the automatic properties.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)