在修改别人的代码时遇到了一个问题:
比如我有个A类的Collection--【ACollection】作为全局变量
在一个方法里的Foreach中New了一些A对象作为局部变量然后添加到ACollection中:
var a = new A();
a.xxxEvent += Onxxx
ACollection.add(a);
但是,没有再对这个xxxEvent进行“-=” 处理,只是在需要用Foreach往ACollection里添加元素之前进行了一个ACollection.Clear()处理。
所以我想问的是:
在集合被清空后,里面的元素注册了的方法会自动被反注册吗?
还是说需要我手动的再把集合里的元素都取出来然后反注册一遍?
不会自动反注册
Clear之后对象没有其他地方引用的话,CLR会自己进行垃圾回收不用管