C# 3.0 - 続・自動プロパティ

自動プロパティでも各アクセッサにアクセス識別子を設定することができる

public class Person
{
    public string Name { get; private set; }
    public int    Age  { get; private set; }

    public Person(string name, int age)
    {
        // private set
        Name = name;
        Age  = age;
    }
}


Person akira = new Person("Akira", 22);

// set
akira.Name = "Who?" // エラー!setアクセッサにアクセスできません

// get
WriteLine("Name:{0} Age{1}", akira.Name, akira.Age); // OK