我有一個包含私人列表的類。我創建了一個getter和將元素添加到列表中的方法:阻止List.Add()方法
public class Test{
private List<T> myList;
public List<T> MyList
{
get { return myList; }
}
public Test()
{
myList = new List<T>();
}
public void AddElements(T element)
{
// Do dome stuff, subscribe to an event of T
myList.Add(element);
}
}
因爲每次一個元素被添加到我的列表我想要做更多的事情,我不希望在代碼的人的某些部分直接添加元素:
Test test = new Test();
// Wrong
test.MyList.Add(element);
// Right
test.AddElements(element);
我曾想過在創建實現IList接口,並覆蓋Add()方法一個新的類,但我不知道是否有「塊」上更簡單的/優雅的方式這個Add()方法。
如果你不希望有人能夠修改它,不要暴露'List'。您可以公開['ReadOnlyCollection'](https://msdn.microsoft.com/en-us/library/e78dcd75(v = vs.110).aspx),然後沒有人可以添加(除非他們使用反射)。 – Sinatr