佐々木屋

技術的なことから趣味まで色々書きます

クラスのプロパティ②(自動実装)

前回お話した通り、プロパティは自分でgetアクセサとsetアクセサを設定する必要がありました。自動実装プロパティを利用すると、この部分を簡略して記述することが可能です。

//通常
private string _hoge;
public string Hoge {
    get {
        return _hoge;
    }
    set {
        _hoge = value;
    }
}

//自動実装プロパティ
public string Hoge { get; set; }
'通常
Private _hoge As String
Public Property Hoge() As String
    Get
        Return _hoge
    End Get
    Set(ByVal value As String)
        _hoge = value
    End Set
End Property

'自動実装プロパティ
Public Property Hoge() As String

自動実装プロパティ場合、setter、getterを記述しなくなるだけでなく、_hogeのような変数を別途用意する必要もありません。Hogeがクラス外部からはプロパティとして、クラス内部からは変数として振る舞われます。

当然ながら、プロパティ内部で何か制御が必要な場合は、自動実装プロパティを使用せず従来通りの記述で実装する必要があります。