C#,索引在数组的边界之外
本文关键字:边界 数组 索引 | 更新日期: 2023-09-27 18:31:04
我有以下代码:
void serialport_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string serialData = serialport.ReadExisting().Replace("/n", "");
string[] splitSerialData = serialData.Split(new Char[] {','}); //Split up the data
this.Invoke(new Action(delegate()
{
this.temperatureLabel.Text = splitSerialData[0];
}));
}
它工作正常,但是当我这样做时:
void serialport_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string serialData = serialport.ReadExisting().Replace("/n", "");
string[] splitSerialData = serialData.Split(new Char[] {','}); //Split up the data
this.Invoke(new Action(delegate()
{
this.temperatureLabel.Text = splitSerialData[0];
this.lightLevelLabel.Text = splitSerialData[1];
}));
}
它不起作用,并显示"索引超出数组的范围"。
您收到此错误是因为serialData
不包含逗号。 因此,生成的数组包含一个元素,表达式splitSerialData[1]
抛出 IndexOutOfRangeException。
这意味着拆分只返回一个元素 - 整个字符串。索引 1 处没有数组元素,因此
splitSerialData[1]
引发IndexOutOfBounds
异常。
反过来,这意味着您传递的字符串不包含逗号','
字符。