-3

どういうわけか、これは数年前にうまくいったようです;)または私は何かが欠けていますか?

ヘルプは事前に感謝されます。

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];
}
4

2 に答える 2

1

このコードの System.IndexOutOfRangeException は、readData の値が 4 つ未満であることを意味します。

要素の数を知ることができます

string[] readData = read.Split(new Char[] { ',' });
MessageBox.Show(readData.Length.ToString()); //you will found it less then 4
于 2013-02-22T15:00:25.850 に答える
0

サンプルを実行したところ、コンソール アプリでエラーが発生しませんでした (デバッガーに渡したテキストが原因である可能性があり、 ((TextBox)rref[1]).Text の実際のテキストを確認します ):

class Program
    {
        static void Main(string[] args)
        {
            string read = "A401,192,2,8" ;

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


            //string[] readdata = read.Split(',');
            string a = readData[0];
            string b = readData[1] + "." + readData[2];
            string c = readData[3];

            Console.WriteLine(a + b + c);
        }
    }

結果 :

A401192.28
Press any key to continue . . .
于 2013-02-22T15:10:13.917 に答える