存储try中的值以便在c#的第二次尝试中使用

本文关键字:第二次 try 存储 | 更新日期: 2023-09-27 18:18:35

大家好,我有以下问题:(运行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)-再次按发送(在推动传感器之后)并通过将差值添加到0来获得其被推入> 0的值。

我只是在一年前上C课程时才学会在外部存储值,就像我在我的程序中所做的那样。是否有一种方法可以存储程序中第一次测量的值,以便我可以在下一个发送/尝试中使用它?

计数器只是用来测试的,我将它换成"小数b2"

我希望有一个简单的修复,不是真正的c#专业人士,但我渴望学习。我提前感谢愿意帮忙的人,MfG, Chris

存储try中的值以便在c#的第二次尝试中使用

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

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

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

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

//declare variable //
var measurement;
// TRY #1 //
try
{
    //assign value to the variable here
}
catch
{
}
// TRY #2 //
try
{
// reference variable here
}
catch
{
}