如何不只增加一次int数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何不只增加一次int数?相关的知识,希望对你有一定的参考价值。

我想阅读我的int,然后指向标签并按按钮将int增加一个数字。有用。但是现在的问题是:“我的程序”只能执行一次。一旦我的程序增加了一个,您就可以按任意多的次数,该程序不会增加数字...哦,我忘了程序正在从.txt文件中读取字符串。

int o;
private void Rechnerpanel_Click (object sender, EventArgs e)
{

   //Here is the Problem 
   if (int.TryParse(RechnerClick.ToString(), out o))
   {

       o++;
       this.Alert("Es wurde 1 Punkt Hinzugefügt", Notification.Form_Alert.enmType.Success);
   }
   else
   {
        this.Alert("Hat nicht geworkt", Notification.Form_Alert.enmType.Error);

   }
   //-----------------------------------------------------------------------------------

   Rechner oFrm5 = new Rechner();
   oFrm5.evtFrm += new ShowFrm(oFrm5_evtFrm);
   oFrm5.Show();
   try
   {
       var sw = new System.IO.StreamWriter(Driver + "UniqueOS" + "\UniqueOS" + "\RechnerClick.ID");
       sw.Write(o.ToString());
       sw.Close();


   }
   catch (System.IO.DirectoryNotFoundException ex)
   {
       //I tried this also
       Int32.TryParse(RechnerClick, out o);
       o++;
       label16.Text = o.ToString();
       //-------------------------------------------------
       var sw = new System.IO.StreamWriter(Driver + "UniqueOS" + "\UniqueOS" + "\RechnerClick.ID");
       sw.Write(o.ToString());
       sw.Close();


   }   
}
答案

Int32.TryParse不会保留目标变量的先前值。它将始终使用转换后的值重置该变量,如果无法转换字符串,则将重置为零。因此,您需要一个临时变量,并仅在Int32.TryParse返回true之后才增加o变量

if (int.TryParse(RechnerClick.ToString(), out int temp))
{

   o++;
   // or o += temp; if you want to increment o with the value read
   this.Alert("Es wurde 1 Punkt Hinzugefügt", Notification.Form_Alert.enmType.Success);
}

以上是关于如何不只增加一次int数?的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中增加会话变量的问题。它只增加一次

LeetCode数组-10(66)-数组表示的数加一

根据间隔pyspark中的记录数增加一列

JavaScript 增加按钮只增加一次

在 Sublime Text 2 中为每个选择添加一个数字,每个选择增加一次

禾匠小程序二次开发:下单页面增加一项字段