クラスのプロパティ④(アクセスレベル制御)
getter、setterそれぞれにアクセス修飾子を設定することが可能です。
C#のみ、自動実装プロパティでも従来の記述でもどちらも設定可能です。
//読み取り、書き込みともに公開 public string Hoge { get; set; } //読み取りのみ公開、書き込みはクラス内部からのみ公開 public string Hoge1 { get; private set; } //書き込みのみ公開、読み取りはクラス内部と派生クラスのみ公開 public string Hoge2 { protected get; set; } //通常記述の場合も同様に使える private string _hoge; public string Hoge4 { private get { return _hoge; } set { _hoge = value; } }
VB.NETでは従来の記法のみ設定可能です。
'読み取り、書き込みともに公開 Public Property Hoge() As String Get Return _hoge End Get Set(ByVal value As String) _hoge = value End Set End Property '読み取りのみ公開、書き込みはクラス内部からのみ公開 Public Property Hoge1() As String Get Return _hoge End Get Private Set(ByVal value As String) _hoge = value End Set End Property '書き込みのみ公開、読み取りはクラス内部と派生クラスのみ公開 Public Property Hoge2() As String Protected Get Return _hoge End Get Set(ByVal value As String) _hoge = value End Set End Property