我创建了一个继承List的 Class EventList,它在每次添加、插入或删除某些内容时触发一个事件:
public class EventList<T> : List<T>
{
public event ListChangedEventDelegate ListChanged;
public delegate void ListChangedEventDelegate();
public new void Add(T item)
{
base.Add(item);
if (ListChanged != null
&& ListChanged.GetInvocationList().Any())
{
ListChanged();
}
}
...
}
目前,我将它用作这样的属性:
public EventList List
{
get { return m_List; }
set
{
m_List.ListChanged -= List_ListChanged;
m_List = value;
m_List.ListChanged += List_ListChanged;
List_ListChanged();
}
}
现在我的问题是,如果一个新对象被引用或阻止它,我可以以某种方式处理它,所以我不必在设置器中进行事件连接吗?
当然,我可以将属性更改为“私有集”,但我也希望能够将类用作变量。