存储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
好的,我将简化它以显示概念,这样它就不会包含您实际使用的所有代码。
所以,你想要的是点击按钮,获取一些值并为下次点击保存它们。
值存储在变量中。如果函数中有一个变量是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
{
}