我有订阅自定义事件的对象,因此我可以一次更改它们。麻烦的是,这永远不会让它们超出范围并被垃圾收集。即使使控件为空也不会使其中包含的控件为空。事实上,即使是无效的控件也不会被收集!(如果我在任何一点上错了,请纠正我。)
所以我想到了一个解决方案,将事件包装在一个类中,创建该类的一个实例并使用它,然后在我想让对象获得 GC 时将其设为空,并创建它的一个新实例接着说。
但是,我对此有两个问题:
- 它会真正起作用,还是对象仍然会逃避被 GC 处理?
- 有没有更简单、更直接的方法来实现这一点?
编辑:第 2 部分已得到回答(在对答案的评论中)。简单地做:event_name = null;
。不过,我仍然想知道关于第 1 部分 - 它会起作用吗?