# Initializing Properties

# C# 6.0: Initialize an Auto-Implemented Property

Create a property with getter and/or setter and initialize all in one line:

public string Foobar { get; set; } = "xyz";

# Initializing Property with a Backing Field

public string Foobar { 
    get { return _foobar; }
    set { _foobar = value; }
}
private string _foobar = "xyz";

# Initializing Property in Constructor

class Example
{
    public string Foobar { get; set; }
    public List<string> Names { get; set; }
    public Example()
    {
        Foobar = "xyz";
        Names = new List<string>(){"carrot","fox","ball"};
    }
}

# Property Initialization during object instantiation

Properties can be set when an object is instantiated.

var redCar = new Car 
{
    Wheels = 2,
    Year = 2016,
    Color = Color.Red
};

# Remarks

When deciding on how to create a property, start with an auto-implemented property for simplicity and brevity.

Switch to a property with a backing field only when circumstances dictate. If you need other manipulations beyond a simple set and get, you may need to introduce a backing field.