2
最近、私はたくさんの匿名メソッドを使用しているので、私は好きでない場合、私は疑問に思う:このChildWindowはGCによって収集されますか?
セイを私のメイン・ウィンドウクラスでは、私が持っている:この場合、
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によって収集されますか?
閉包オブジェクトがChildWindowクラスで定義されているオブジェクトであることを意味しますか? 'public ClosingHandler Closing'のように?したがって、もし私のMainWindowクラスがまだChildWindow 'ChildWindow anotherReferece = myChildWindow'へのオブジェクト参照を持っているとしたら、それはGCによって収集されません。 –
閉鎖の詳細については、[私のブログ投稿](http://blog.slaks.net/2011/06/delegates-vs-function-pointers-part-4-c.html)を参照してください。ここでGCについて心配する必要はありません。 – SLaks