int rs20a;
byte[] buf20a = new byte[16];
byte[] ss20a = System.Text.Encoding.Default.GetBytes(textBox18.Text); for (int cnt20a = 0; cnt20a < 16; cnt20a++)
{
buf20a[cnt20a] = ss20a[cnt20a]; }
rs20a = ICC.ICCWrite(iSID, 8, buf20a, 16);
//不执行一下的if语句,为什么?
Array.Clear(buf20a, 0, 16);
if (ss20a.Length > 16)
{
for (int cnt20b = 0; cnt20b < 16; cnt20b++)
{
buf20a[cnt20b] = ss20a[16 + cnt20b];
}
rs20a = ICC.ICCWrite(iSID, 9, buf20a, 16);
}
//同上
Array.Clear(buf20a, 0, 16);
if (ss20a.Length > 24)
{
for (int cnt20c = 0; cnt20c < 16; cnt20c++)
{
buf20a[cnt20c] = ss20a[24 + cnt20c];
}
rs20a = ICC.ICCWrite(iSID, 10, buf20a, 16);
}
谢谢,请问为什么?怎么解决?
byte[] buf20a = new byte[16];
byte[] ss20a = System.Text.Encoding.Default.GetBytes(textBox18.Text); for (int cnt20a = 0; cnt20a < 16; cnt20a++)
{
buf20a[cnt20a] = ss20a[cnt20a]; }
rs20a = ICC.ICCWrite(iSID, 8, buf20a, 16);
//不执行一下的if语句,为什么?
Array.Clear(buf20a, 0, 16);
if (ss20a.Length > 16)
{
for (int cnt20b = 0; cnt20b < 16; cnt20b++)
{
buf20a[cnt20b] = ss20a[16 + cnt20b];
}
rs20a = ICC.ICCWrite(iSID, 9, buf20a, 16);
}
//同上
Array.Clear(buf20a, 0, 16);
if (ss20a.Length > 24)
{
for (int cnt20c = 0; cnt20c < 16; cnt20c++)
{
buf20a[cnt20c] = ss20a[24 + cnt20c];
}
rs20a = ICC.ICCWrite(iSID, 10, buf20a, 16);
}
谢谢,请问为什么?怎么解决?
自己写的类,无错误,
另外
如果16<ss20a.Length<=24
if (ss20a.Length > 16)
{
for (int cnt20b = 0; cnt20b < 16; cnt20b++)
{
buf20a[cnt20b] = ss20a[16 + cnt20b];
}
rs20a = ICC.ICCWrite(iSID, 9, buf20a, 16);
}
ss20a[16 + cnt20b]出现数组越界异常
同理 24<ss20a.Length<40 时
ss20a[16 + cnt20b]也会出现数组越界异常