System.IndexOutOfRangeException c#

System.IndexOutOfRangeException c#,c#,string,C#,String,不知何故,这在几年前似乎奏效了;) 还是我错过了什么 我们将感谢您的帮助 thx提前 else if (recStatus == 3) { ((TextBox)rref[1]).Text = read; //string readData = read; string[] readData = read.Split(new Char[] { ',' }); //string[]

不知何故,这在几年前似乎奏效了;) 还是我错过了什么

我们将感谢您的帮助 thx提前

else if (recStatus == 3)         
{
            ((TextBox)rref[1]).Text = read;

            //string readData = read;
            string[] readData = read.Split(new Char[] { ',' });


            //string[] readdata = read.Split(',');
            txtType.Text = readData[0];
            txtSerno.Text = readData[1]
            txtFirmware.Text = readData[2] + "." + readData[3];
}

此代码中的System.IndexOutOfRangeException表示readData的值小于4

您可以通过以下方式知道元素的数量:

string[] readData = read.Split(new Char[] { ',' });
MessageBox.Show(readData.Length.ToString()); //you will found it less then 4

我刚刚运行了您的示例,在console应用程序中没有发现任何错误(可能是因为您正在传递的文本,请放置一个调试器并查看实际文本((TextBox)rref[1])。text):

结果:

A401192.28
Press any key to continue . . .

您的readDate可能只包含一个逗号,并且在获取数组[1]或[2]或[3]时找不到它。您的问题是什么?什么是rref?哪一行抛出了错误?在哪一行抛出了异常?哪一行通过了错误?我不想打扰你,但你认为你可以停下来读一分钟代码是什么?您正在访问不存在的数组索引。很抱歉,字段编号错误。。。但无论如何,即使是正确的,我也会得到与你相同的结果。正如我所说的,试着在这一行((文本框)rref[1])上放置断点。文本并发布结果解决了问题。。。无论如何谢谢大家。。。我只需要在从上面运行代码之前初始化按钮数据,当我使用代码时,它告诉我int不能转换为字符串
A401192.28
Press any key to continue . . .