C# 存储try中的值以在第二次try C中使用#

C# 存储try中的值以在第二次try C中使用#,c#,winforms,C#,Winforms,大家好,我有以下问题: (运行MS Visual Community Edition 2015) 现在,Serialport是一个返回长度测量值的设备。因为它有点奇怪,或者只是它的构建方式,它以负数(介于-5000和-3370之间)开始。现在,当我想在屏幕上获得真实的测量值时,我想将值设置为0并计算差值 意思是:我启动程序-按send-获取一个值(比如-3000)-再次按send(在按下seonsor后)并通过将差值添加到0来获取其被压入>0的值 一年前,当我上C课程时,我才学会在外部存储值,就

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

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

意思是:我启动程序-按send-获取一个值(比如-3000)-再次按send(在按下seonsor后)并通过将差值添加到0来获取其被压入>0的值

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

计数器只是用来测试的,我会把它换成“十进制b2”


我希望能有一个简单的解决办法,虽然还不是一个真正的C#高手,但我渴望学习。我提前感谢愿意帮忙的人,MfG,Chris

好的,为了展示概念,我会简化它,这样它就不会包含您实际使用的所有代码。
所以,您需要的是单击按钮,获取一些值并存储它们,以便下次单击。
值存储在变量中。若函数中有一个变量是click事件的处理程序,那个么一旦函数完成执行,该值就会被销毁。
所以,您需要的是在外部范围(类级别)中创建变量。您的函数已经在表单的类中,所以让我们开始编写代码:

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

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

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

//declare variable //
var measurement;

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

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

这是什么类型的C#程序?啊,对不起,我会把它加进去。我使用MSVisualCommunityEditon2105关于上述代码(参数名称、使用、验证、错误检查等等)可以说很多,但解决您的问题的简单方法是在类级别定义属性(甚至字段),并从try block.WinForms、WPF、ASP.NET MVC设置它?我相信这就是WinForms。至少这是我在MSVperfect中启动项目时点击的,效果很好。加上Math.Abs,我终于从传感器上得到了一些读数(谢谢
//declare variable //
var measurement;

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

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