我有一個有數千個節點的集合。我希望每個節點都觸發一個Changed()事件來通知容器。C#可以使用單個EventHandler <EventArgs>數千個對象嗎?
正常情況下,註冊一個事件創建一個新的EventHandler <>:
Node node = new Node();
node.Changed += new EventHandler<EventArgs>(OnChanged);
這將導致數以千計的事件處理程序<>對象。
我想知道是否有可能建立一個單一的事件處理程序<>和上千個節點的同時使用它:
class Container {
EventHandler<EventArgs> eventHandler =
new EventHandler<EventArgs>(OnChanged);
void CreateNode() {
Node node = new Node();
node.Changed += eventHandler;
}
}
僅供參考 - Changed()事件是通知容器可能需要重新排序。想象一下,除了添加/刪除之外,使用Item setter的SortedSet <>。 –