コレクションメンバーのいるクラスがあります。メソッド(適切な検証などを実行できる)を使用する代わりに、外部コードがこのコレクションを直接変更しないようにしたいと思います。
これは思ったより難しいです。これが私が使用している解決策です。この一般的なことを行うためのより良い方法があるかどうか教えていただけますか?それはすべて少し過剰に設計されているようです。
using System.Collections.Generic;
using System.Collections.ObjectModel;
public class Foo
{
private List<Bar> _bars = new List<Bar>();
public ReadOnlyCollection<Bar> Bars { get { return _bars.AsReadOnly(); } }
public void AddBar(Bar bar) //black sheep
{
//Insert validation logic here
_bars.Add(bar);
}
}