使用For循环代替If语句
本文关键字:If 语句 For 循环 使用 | 更新日期: 2023-09-27 18:13:52
我的代码根据索引号从comboBox中选择项目,然后为每个项目分配一个特定的字节。为此,我使用了If语句,并且不得不重复它很多次。
我知道如何使用循环非常基本,但我不知道如何做到这一点,当每个项目需要一个不同的值分配给它。
if (weaponcamCombo.SelectedIndex == 0)
{
PS3.SetMemory(Offsets.WeaponCamo + (0x80 * (uint)camoclassUD.Value) + (0x564 * (uint)camosoldierUD.Value), new byte[] { 0x0A });
}
if (weaponcamCombo.SelectedIndex == 1)
{
PS3.SetMemory(Offsets.WeaponCamo + (0x80 * (uint)camoclassUD.Value) + (0x564 * (uint)camosoldierUD.Value), new byte[] { 0x0B });
}
if (weaponcamCombo.SelectedIndex == 2)
{
PS3.SetMemory(Offsets.WeaponCamo + (0x80 * (uint)camoclassUD.Value) + (0x564 * (uint)camosoldierUD.Value), new byte[] { 0x0C });
}
当你看到一个特定的字节被分配给每个项目时,我想知道我如何在循环中仍然这样做?
谢谢
添加weaponcamCombo.SelectedIndex
到0x0A
if(weaponcamCombo.SelectedIndex>-1)
{
PS3.SetMemory(Offsets.WeaponCamo + (0x80 * (uint)camoclassUD.Value) + (0x564 * (uint)camosoldierUD.Value), new byte[] { 0x0A + weaponcamCombo.SelectedIndex });
}
或使用查找表(实际上是一个数组)
var values = new byte[]{0x0f,0x6a};
if(weaponcamCombo.SelectedIndex>-1)
{
PS3.SetMemory(Offsets.WeaponCamo + (0x80 * (uint)camoclassUD.Value) + (0x564 * (uint)camosoldierUD.Value), new byte[] { values[weaponcamCombo.SelectedIndex] });
}
您可以创建一个函数来设置内存,然后使用索引调用它。
public void SetMemory(int index)
{
if(index >= 0)
{
PS3.SetMemory(Offsets.WeaponCamo + (0x80 * (uint)camoclassUD.Value) + (0x564 * (uint)camosoldierUD.Value), new byte[] { (0x0A + index)});
}
}
然后像这样调用它:
SetMemory(weaponcamCombo.SelectedIndex);