C#のプロパティ (property)

自動実装プロパティ (Auto-Implemented Property)

プロパティの宣言を簡略化します。
※ 自動実装プロパティを使用できるのは、C#3.0 (Visual Studio2008) 以降です。

使用方法

アクセサの実装コードをセミコロン (;) に置き換えることで、自動実装プロパティとなります。なお自動実装プロパティには、getとsetの両方のアクセサが必ず必要です。

通常のプロパティ 自動実装プロパティ
class Class
{
    private int a;

    public int A
    {
        get { return a; }
        set { a = value; }
    }
}
class Class
{
    public int A
    {
        get;
        set;
    }
}
※ プロパティのフィールド (バッキング フィールド)
はコンパイラによって自動的に作成される。

アクセス制限

アクセサはgetとsetの両方が必ず必要となるため、それを削除するのではなくアクセス修飾子を使用します。

読み取り専用
通常のプロパティ 自動実装プロパティ
class Class
{
    private int a;

    public int A
    {
        get { return a; }
    }
}
class Class
{
    public int A
    {
        get;
        private set;
    }
}