0Pricing
C# Academy · Lesson

Full Properties with Backing Fields

Add logic to getters and setters.

Beyond Auto-Properties

When you need logic inside get or set, you write a full property with an explicit backing field. The field stores the data; the accessors control access.

using System;

class Temperature
{
    private double _celsius;

    public double Celsius
    {
        get { return _celsius; }
        set { _celsius = value; }
    }
}

class Program
{
    static void Main()
    {
        var t = new Temperature();
        t.Celsius = 21.5;
        Console.WriteLine(t.Celsius);
    }
}

The Backing Field Convention

By convention, a backing field is private and named with a leading underscore, like _name. The public property exposes it.

using System;

class Person
{
    private string _name;

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }
}

class Program
{
    static void Main()
    {
        var p = new Person();
        p.Name = "Grace";
        Console.WriteLine(p.Name);
    }
}

All lessons in this course

  1. Auto-Implemented Properties
  2. Full Properties with Backing Fields
  3. Expression-Bodied Members
  4. Indexers
← Back to C# Academy