C#、VB.net(.net framework 2.0)で開発しております。
FamilyクラスのListフィールド_peopleには外部からの変更操作(Add、Remove等)を許可したくないのですが、
以下のようにReadOnlyのプロパティを設けても、代入操作はできないもののコレクション自体への変更は可能となってしまいます。
※family.People.Add(mem) 等
IListやICollectionインターフェースをImplementして独自のコレクションを作り、
AddやRemoveメソッド内で例外を投げたりすることも考えたのですが、
そもそもコンパイルを通したくありません。
こういった場合、どのように実装するのが定石でしょうか?
宜しくお願い致します。
以下コード例
Public Class Family
Dim _people As List(Of Member)
Public ReadOnly Property People() As Member
Get
Return _people
End Get
End Property
End Class