在C#中,我有一个MenuItem数组。我正在尝试交换数组中索引2和索引3的两个对象,但是使用下面的代码没有成功:
MenuItem Temp = Items[2];
Items[2] = Items[3];
Items[3] = Temp;
为什么C#中的第二和第三行不起作用,我可能还没有理解原因。有人能更详细地解释一下吗?我需要更深入地了解并逐个交换对象中的每个属性吗?
编辑 - 对不起。看起来我在尝试清理代码以发布时搞砸了。现在已经纠正。
实际代码:
MenuItem TempButton = MenuItems.Items[SelectedButton.CountId];
MenuItems.Items[SelectedButton.CountId] = MenuItems.Items[SelectedButton.CountId + 1];
MenuItems.Items[SelectedButton.CountId + 1] = TempButton;
MenuItems.Items
是一个 MenuItem
数组。
查看我放在 MenuItems.Items 上的监视器,第二行或第三行没有任何反应。
MenuItems.Items
属性具有 get 和 set 函数,这可能是导致问题的原因...将进一步调查...
Temp
和Items[2]
互相赋值,实际上什么都没有交换。 - BoltClockMenuItems.Items[]
,而其他地方都是Items[]
?还有第二行中的SelectedButton.CountID,但其他地方都是用魔数吗? - Robert Harvey