最近我一直在使用匿名方法,所以我想知道我是否喜欢:
在我的MainWindow课程中说,我有:
ChildWindow myChildWindow = new ChildWindow();
myChildWindow.Closing+= (o, e) => {
//DoSomething
rootGrid.Children.Remove(o as ChildWindow);
}
this.rootGrid.Children.Add(myChildWindow );
myChildWindow.Show();
在这种情况下,我将无法从.Closing
中删除事件处理程序,因为它是使用匿名方法定义的。
这个ChildWindow还会被GC收集吗?
答案 0 :(得分:1)
是
您所做的只是创建一个带有闭包对象的委托,并从子窗口引用它。
您没有创建任何其他参考到子窗口。