从第二次尝试C#中存储的值存储

时间:2016-11-17 10:32:18

标签: c# winforms

大家好帮手,我有以下问题: (运行MS Visual Community Edition 2015)

private void button4_Click(object sender, EventArgs e)          // Senden
{
    serialPort2.WriteLine("SR,00,002\r\n");
    textBox1.Text = "gesendet";
    textBox3.Text = "";
    try
    {
        System.IO.StreamReader file = new System.IO.StreamReader("C:\\blub.txt");
        String line = file.ReadToEnd();
        string Hallo = line;   \\in the beginning there is "0" in the file
            file.Close();
        decimal counter = Convert.ToDecimal(Hallo);   \\just for testing
        counter++; 
        string b = serialPort2.ReadLine();
        string[] b1 = Regex.Split(b, "SR,00,002,"); \\cuts off unwanted input from device
        decimal b2 = decimal.Parse(b1[1]);  \\number like -3000
        System.IO.StreamWriter test = new System.IO.StreamWriter("C:\\blub.txt");
        test.WriteLine(counter);
        test.Close();
        textBox7.Text = "Das ist counter:" + counter;
    }
    catch (TimeoutException)
    {
        textBox3.Text = "Timeout";
        throw;
    }

}

现在,Serialport是一个返回长度测量的设备。因为它有点奇怪,或者只是它的构建方式,它以一个负数(从-5000到-3370之间)开始。现在,因为我想在屏幕上获得真实的测量,我想将值设置为0并计算差异。

意思是:我启动程序 - 按发送 - 获取一个值(比如-3000) - 再次按下发送(在推入seonsor之后)并获得其被推入的值> 0将差值加到0。

我只学会在一年前有一门C课程时在外部存储值,就像我在我的程序中一样。有没有办法将第一次测量的值存储在程序中,以便我可以在下次发送/尝试时使用它?

该计数器仅用于测试,我会将其换成“十进制b2”

我希望有一个简单的解决方法,不是真正的C#专家,但我渴望学习。我事先感谢愿意帮助的人,MfG,Chris

2 个答案:

答案 0 :(得分:0)

好的,我会简化这个以显示概念,因此它不会包含您实际使用的所有代码 所以,你想要的是点击按钮,获取一些值并存储它们以供下次点击 值存储在变量中。如果函数中的变量是click事件的处理函数,则只要函数完成执行,就会销毁该值 所以,你需要的是在外部范围(类级别)创建变量。您的函数已经在表单的类中,所以让我们来代码:

class Form1
{
    string BetweenClickStorage;
    private void button4_Click(object sender, EventArgs e)
    {
        //Load data here
        BetweenClickStorage = LoadedData;
    }
}

在此之后,当您再次单击该按钮时,值仍将在BetweenClickStorage中。它也可用于所有其他按钮点击处理程序和该表单中的其他代码。

答案 1 :(得分:0)

如果我正确理解你的问题,答案就是在try / catch之外声明一个变量:

//declare variable //
var measurement;

// TRY #1 //
try
{
    //assign value to the variable here
}
catch
{
}

// TRY #2 //
try
{
// reference variable here
}
catch
{
}