问题描述
有人可以帮我解决这个问题吗? 这是我的代码:
private void Update()
{
if (General.UpdateActive == true)
{
if (General.charActive == 0)
{
for (int i = 0; i < CharacterItem.equipmentSlots; i++)
{
CharacterItem.MC_EquipmentSlots[i].OnDropEvent += slot => OnDropEvent(slot);
CharacterItem.Merc1_EquipmentSlots[i].OnDropEvent -= slot => OnDropEvent(slot);
CharacterItem.Merc2_EquipmentSlots[i].OnDropEvent -= slot => OnDropEvent(slot);
CharacterItem.Merc3_EquipmentSlots[i].OnDropEvent -= slot => OnDropEvent(slot);
}
}
else if (General.charActive == 1)
{
for (int i = 0; i < CharacterItem.equipmentSlots; i++)
{
}
}
对于 Mer1,同上,但将 MC 部分更改为 -=,将 Merc1 部分更改为 += 问题是当我选择其他字符时,事件处理程序不会取消订阅。 当我选择MC时,它在MC_EquipmentSlots中添加事件,然后当我选择Merc1时,MC_EquipmentSlots仍然有它的事件。
令人困惑的部分是,当我循环浏览字符时,口袋中的代码按预期工作。我尝试将口袋代码复制到设备代码中,但仍然出现我之前提到的错误。
CharacterItem.MC_PocketSlots[i].OnDropEvent += slot => EventHelper(slot,OnDropEvent);
CharacterItem.Merc1_PocketSlots[i].OnDropEvent -= slot => EventHelper(slot,OnDropEvent);
CharacterItem.Merc2_PocketSlots[i].OnDropEvent -= slot => EventHelper(slot,OnDropEvent);
CharacterItem.Merc3_PocketSlots[i].OnDropEvent -= slot => EventHelper(slot,OnDropEvent);
请提前帮助并感谢您。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)