初学C#之变量累加

来源:互联网 发布:国债逆回购 知乎 编辑:程序博客网 时间:2024/06/05 05:49

在学习C#编写串口时,想用label表示出每次发送个数的累加值,定义了int num;,但是在调试界面那个值一直不变化,我就纳闷是定义了静态的还是怎么回事,一直没想明白就百度中,无意中发现我好想是把num的定义放在了函数体中,每次点击button时都会定义num=0;所以也就不会有累加,而是每次数值都是一个,下面附上改前改后代码

改前:    
        private void button3_Click(object sender, EventArgs e)   //每次发一个字节  
        {      

            int num = 0;   
            string[] sendbuff = richTextBox2.Text.Split();  //分割输入的字符串,判断有多少个字节需要发送  
            Debug.WriteLine("发送字节数:" + sendbuff.Length);
            num += sendbuff.Length;
            label1.Text = "TX:" + num.ToString();
            foreach (string item in sendbuff)
            {
                int count = 1;
                byte[] buff = new byte[count];
                buff[0] = byte.Parse(item, System.Globalization.NumberStyles.HexNumber);//格式化字符串为十六进制数值  
                s.Write(buff, 0, count);
            }
        }

改后:

        int num = 0;
        private void button3_Click(object sender, EventArgs e)   //每次发一个字节  
        {         
            string[] sendbuff = richTextBox2.Text.Split();  //分割输入的字符串,判断有多少个字节需要发送  
            Debug.WriteLine("发送字节数:" + sendbuff.Length);
            num += sendbuff.Length;
            label1.Text = "TX:" + num.ToString();
            foreach (string item in sendbuff)
            {
                int count = 1;
                byte[] buff = new byte[count];
                buff[0] = byte.Parse(item, System.Globalization.NumberStyles.HexNumber);//格式化字符串为十六进制数值  
                s.Write(buff, 0, count);
            }
        }

总结:一个代码的位置很重要

原创粉丝点击