前に読み取り専用プロパティを使用したことがない簡単な例です:
Private myList As New List(Of String)
Public ReadOnly Property List As List(Of String)
Get
Return myList
End Get
End Property
または、Visual Studioの2015年にサポート自動初期化ReadOnlyプロパティ(すなわち、VB14を使用し、上記):
Public ReadOnly Property List As List(Of String) = New List(Of String)
今の消費者は追加したり、リストから削除することができます。
myObject.List.Add(...)
myObject.List.Remove(...)
が、彼らは、全体としてのリストを置き換えることはできません。
、私はを公開することをお勧めします代わりに、具体的なクラスのこのような状況でインターフェース(IList
):
Public ReadOnly Property List As IList(Of String) = New List(Of String)
これは、上記のすべての機能を提供します。また、契約の内容を変更することなく、つまりライブラリのコンシューマを再コンパイルすることなく、リストの具体的なタイプを後でたとえばMyFancyListWithAdditionalMethods
に変更することができます。
クラスコンストラクタでプライベートバッキングフィールドvarを初期化します。また、返す前にNothingをチェックすることもできます。 – Plutonix