У меня есть класс с членом коллекции.Я хотел бы запретить внешнему коду изменять эту коллекцию напрямую, вместо этого используя методы (которые могут выполнять соответствующую проверку и т. Д.).
Это сложнее, чем я думал.Вот решение, которое я использую.Можете ли вы сказать мне, если есть лучшие способы сделать это обычное дело?Кажется, что все это немного переоценено.
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);
}
}