我有一个完整的观察者列表
//create the list
Class ObersverList : IList<Observer>
Observer 类有一个显示一些信息的动态表单。我想要一种干净的方式来杀死表单。
在列表中,我实现了类似
// preiodically call from programm to have always a nice updated list
observerlist.RemoveClosedHandles();
//observerlist.cs
public void RemoveClosedHandles() {
_list.RemoveAll(ObserverActivePredicate);
}
private static bool ObserverActivePredicate(Oberver o) {
return !o.HasHandle;
}
这导致 ObserverList 非常好,而且它工作得很好,但我有问题。a)观察者没有被杀死,它刚刚从列表中消失(对我来说没问题)b)表格保持打开状态。(这是一个大问题)
我想要使用构造函数之类的东西
//observer.cs
activate() {
HUD = new ObserverHud();
}
~Observer(){
HUD.Close();
HUD.Dispose();
}
但我不知道如何调用观察者析构函数并杀死元素,同时删除。有没有优雅的 c# 方式,还是我需要跳过列表,找到要删除的元素并处理它?
干杯