C#如何使用循环外部循环中变量的值

时间:2018-05-12 13:05:59

标签: c# visual-studio loops variables nmea

我试图根据字符串计算NMEA校验和,因此我可以将其与给定的校验和进行比较,并声明字符串是否有错误。 这就是我尝试这样做的方式(给定的0指数只是单行的一个例子)

        List<string> richTextBoxLines = richTextBox1.Lines.ToList();
        richTextBoxLines.RemoveAll(x => !x.Contains("GPGGA"));

        richTextBox1.Lines = richTextBoxLines.ToArray();
        NOLbox.Text = richTextBox1.Lines.Count().ToString();

        int finalCheckSum = 0;
        string sumOfBytes = richTextBox1.Lines[0].Split('*').First().Substring(1);
        for (int i = 0; i == sumOfBytes.Length; i++)
            { 
            finalCheckSum ^= Convert.ToByte(sumOfBytes[i]);
            }
        checksumValue.Text = finalCheckSum.ToString();

第一部分删除GGA以外的通信,其余部分必须计算校验和。 问题是我在循环之外需要FinalCheckSum变量值,到目前为止它返回0 - 因为它当然被声明为0,但是在循环中声明它是毫无意义的。那个,我怎样才能在循环之外得到变量值,以便以后可以使用它?

1 个答案:

答案 0 :(得分:1)

对此的一般解决方案是在范围内移动您需要1级的变量,直到您可以在需要的位置访问它。在你的情况下,我看到你已经这样做了,你的变量是在for循环之前声明的。错误必须在循环的停止条件下。我想你的意思是写下:

for (int i = 0; i <= sumOfBytes.Length; i++)