示例代码:
textBox.Click += (s, e) => { ... };
textBox.Dispose ();
textBox = null;
GC会收集textBox吗?
答案 0 :(得分:1)
最终,是的。当GC决定这样做时。
答案 1 :(得分:1)
是的,它将被收集。删除事件处理程序仅在未删除对事件的源的引用时才很重要。文本框是源,你将引用归零,所以没关系。
如果你这样做会有问题:
parent.Add(textBox);
parent.Click += textBox.HandleParentClick;
parent.Remove(textBox);
父级在此处保留在范围内,因此事件对文本框的引用(通过其处理程序)也会保留,即使已删除通过“添加/删除”直接引用文本框。