Ich habe den folgenden Code:C#, war Index außerhalb der Grenzen des Arrays
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];
}));
}
Und es funktioniert gut, aber wenn ich das tue:
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];
}));
}
Es funktioniert nicht und sagt " Index war außerhalb der Grenzen des Arrays".
Sind Sie sicher, dass es '/ n' ist und nicht' \ n'? .. – dasblinkenlight
Sind Sie sicher, dass in Ihrer Zeichenfolge ein Komma steht? Tipp: Es gibt keine. – Ryan
Sie sollten die Nummer der Zeichenfolge in splitSerialData überprüfen, z. mit splitSerialData.Length> 2. – Casperah