0

示例代码:

textBox.Click += (s, e) => { ... };
textBox.Dispose ();
textBox = null;

textBox会被GC收集吗?

4

2 回答 2

1

最终,是的。当 GC 决定这样做时。

于 2013-10-31T16:00:36.657 回答
1

是的,它将被收集。仅当未删除对事件的引用时,删除事件处理程序才重要。文本框是源,您将引用归零,所以没关系。

如果你做了这样的事情,你会遇到问题:

parent.Add(textBox);
parent.Click += textBox.HandleParentClick;
parent.Remove(textBox);

父级仍然在此范围内,因此事件对文本框的引用(通过其处理程序)也仍然存在,即使通过添加/删除对文本框的直接引用已被删除。

于 2013-10-31T16:16:37.880 回答