Я пытаюсь упростить чье-то кодирование, чтобы сделать коды более читабельными. Однако при выполнении следующего кода я обнаружил ошибку «System.OverFlowException». Я запускаю код в визуальной студии IDE. Функция «Transmit_Data» используется только для хранения массива данных. «TotalIndexToMod» - длина массива, «CurrentLoopIndexCnt» - текущий индекс индекса зацикливания «TotalIndexToMod». Ниже приведены коды (в C#):
int TotalIndexToMod = 28;
int MaxLoopIndexCnt = 16;
for (int mod = 0; mod < TotalIndexToMod; mod++)
{
int LeftToMod = MaxLoopIndexCnt - CurrentLoopIndexCnt;
Transmit_Data(mod, LeftToMod);
CurrentLoopIndexCnt++;
Console.WriteLine("CurrentIndexToMod / Mod/ Index : " + Convert.ToInt16(mod));
CurrentIndexToMod = mod;
Console.WriteLine("CurrentLoopIndexCnt : " + Convert.ToInt16(CurrentLoopIndexCnt));
Console.WriteLine("MaxLoop : " + Convert.ToInt16(MaxLoop));
Console.WriteLine("MaxLoopIndexCnt : " + Convert.ToInt16(MaxLoopIndexCnt));
if (CurrentLoopIndexCnt > MaxLoopIndexCnt)
{
CurrentLoopCnt++;
if (CurrentLoopCnt > MaxLoop) // last loop end
{
// byte Mod_State = (byte)(RxMsg.DATA[0] & 0x03);
if (CurrentIndexToMod == 128)
{
//do something
}
else
{
//do something
}
}
else
{
if (CurrentLoopCnt < MaxLoop)
{
MaxLoopIndexCnt = 16;
}
else if (CurrentLoopCnt == MaxLoop) // last loop
{
MaxLoopIndexCnt = SpareMaxLoopIndexCnt;
}
CurrentLoopIndexCnt = 1;
}
}
}