c# 屬性 get/set 演變 Reference

C# 1.0

public class Employee
{
    private string name;

    public string Name
    {
        get { return this.name; }
        set { this.name = value; }
    }

    private int age;

    public int Age
    {
        get { return this.age; }
        set { this.age = value; }
    }
}

C# 2.0 可限定存取範圍

public class Employee
{
    private string name;

    public Employee(string name, int age)
    {
        this.name = name;
        this.age = age;
    }

    public string Name
    {
        get { return this.name; }
        private set { this.name = value; }
    }

    private int age;

    public int Age
    {
        get { return this.age; }
        private set { this.age = value; }
    }
}

C# 3.0 自動屬性

public class Employee
{
    public Employee(int age)
    {
        this.Age = age;
    }

    public string Name { get; set; }

    public int Age { get; private set; }
}

C# 6.0 唯讀自動屬性

public class Employee
{
    public Employee(int age)
    {
        this.Age = age;
    }

    public string Name { get; set; } = "Michael";

    public int Age { get; } = 30;

    public string Birth => "1989/12/31";
}

Reference

C# 的唯讀自動屬性是怎樣煉成的