所以我有一個班,基本上是一個經理20 +副本的另一類。處理每個人發起的同一事件的最佳方式是什麼?這是註銷事件的最佳方式嗎?或者我應該以某種方式使用一個EventHandler?最好的方法來處理多個類的事件?
我把一個簡單的例子,基本上做我在做我的實際項目。
class Manager
{
List<Child> children = new List<Child>();
public Manager()
{
for (int i = 0; i < 10; i++)
{
Childchild = new Child();
child.Done += child_Done;
items.Add(child);
child.DoStuff();
}
}
public void RemoveAll()
{
foreach (Child child in items)
{
child.Done -= child_Done;
}
items.Clear();
}
void child_Done(string sometext)
{
Console.WriteLine("child done: " + sometext);
}
}
class Child
{
public delegate void _Done(string sometext);
public event _Done Done;
public Child()
{
}
public void DoStuff()
{
if (Done != null) { Done("finally!"); }
}
}