如何不只增加一次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数?的主要内容,如果未能解决你的问题,请参考以下文章