我有一个函数可以检查对象列表以查看它们是否已被单击并相应地触发 OnClick 事件。我相信该功能工作正常,但我遇到了问题:
当我挂接到其中一个 OnClick 事件并删除该元素并将其插入到列表中的不同位置(该程序的典型功能)时,我收到“集合已修改...”错误。
我相信我明白发生了什么:
- 该函数在必要时循环触发 OnClick 事件的每个对象
- 触发事件并且对象根据挂钩函数更改列表中的位置
- 迭代集合时修改集合会引发异常
我的问题是,如何允许函数迭代所有对象,在适当的时间触发必要的事件,并且仍然为用户提供操作列表中对象位置的选项?
此类问题一般有两种解决方案:
- 复印一份清单。迭代副本。
- 列出需要发生的改变。完成迭代后应用更改。
如果您想将进行更改的代码与执行循环的代码分离,“使用索引”选项听起来并不合适。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)