Характерно, чтобы внутренние структуры данных отображались как свойства вашего бизнес-класса. Но когда нам приходится выставлять массивные структуры (например, правила < Правила >), мы можем столкнуться с проблемой неправильного использования (как в Варианте 1).
Отображение структуры данных, подобной массиву, с использованием свойств
Его предлагали подвергать клон таких структур данных как свойств, чтобы внутренняя структура не нарушалась.
У кого-нибудь есть хорошо обоснованное решение для этого?
public class Rule
{
}
public class RulesManager
{
List<Rule> rules = new List<Rule>();
public List<Rule> Rules
{
get { return rules; }
set { rules = value; }
}
public void Add(Rule r)
{
rules.Add(r);
// Do something else after add;
}
public void Delete(Rule r)
{
rules.Remove(r);
// Do something else after delete;
}
}
public class CallingCode
{
public static void Main()
{
RulesManager r = new RulesManager();
// Option 1
r.Rules.Add(new Rule());
// Option 2
r.Add(new Rule());
}
}
Но мое определение изменится со списка на ReadOnlyCollection , rt? –
NileshChauhan
Когда-либо слышал о типе литья? :-) Я уточню ... –