Будет ли это ChildWindow собираться GC? - PullRequest
2 голосов
/ 08 февраля 2012

В последнее время я часто использую анонимный метод, поэтому мне интересно, если мне нравится:

Скажем, в моем классе 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?

1 Ответ

1 голос
/ 08 февраля 2012

Да.

Все, что вы делаете, это создаете делегат с объектом замыкания и ссылаетесь на него из дочернего окна.

Вы не создаете никаких дополнительных ссылок на дочернее окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...