我的代码通过其索引号从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 });
}
当你看到为每个项目分配一个特定的字节时,我想知道我是如何做到这一点但是在一个循环中?
由于
答案 0 :(得分:2)
将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] });
}
答案 1 :(得分:0)
您可以创建一个设置内存的函数,然后只使用索引调用它。
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);