C# 向标签添加一个int变量并赋予它+;1.
我正忙着一个迷宫,我现在正在处理这个问题。我想当有人撞到墙上时,他使用方法C# 向标签添加一个int变量并赋予它+;1.,c#,int,var,counting,C#,Int,Var,Counting,我正忙着一个迷宫,我现在正在处理这个问题。我想当有人撞到墙上时,他使用方法Movetostart,我想让它与vardeath一起计数。到目前为止,我得到了这个 int death = 0; private void MoveToStart() { Count.Text = death.ToString(); Point startingPoint = panel1.Location; startingPoint.Offset(301, 543); Cursor.P
Movetostart
,我想让它与vardeath
一起计数。到目前为止,我得到了这个
int death = 0;
private void MoveToStart()
{
Count.Text = death.ToString();
Point startingPoint = panel1.Location;
startingPoint.Offset(301, 543);
Cursor.Position = PointToScreen(startingPoint);
ms = 0;
sec = 0;
min = 0;
hour = 0;
death = +1;
}
现在的问题是,死亡只停留在1上,不管它撞到墙上多少次,它都不会计数。我猜你想写
死亡+=1代码>和非<代码>死亡=+1代码>
编辑:
此外,与其他人的评论一样,您应该将该值指定给Count。Text
之后,您将增加该值或Count上的文本。Text
将始终落后一步。您可能希望在显示它之前增加death
,否则它将显示为1:
private void MoveToStart()
{
++death;
Count.Text = death.ToString();
Point startingPoint = panel1.Location;
startingPoint.Offset(301, 543);
Cursor.Position = PointToScreen(startingPoint);
ms = 0;
sec = 0;
min = 0;
hour = 0;
}
使用++
操作符将计数增加1,并将其分配回对象,与死亡+=1相同代码>
代码的实际问题是death=+1
与death+=1
不同。您所做的只是将death
重新赋值给+1
,或者1
如果您想将1添加到“death”变量中,您可以这样编写它
int death = 0;
private void MoveToStart()
{
Count.Text = death.ToString();
Point startingPoint = panel1.Location;
startingPoint.Offset(301, 543);
Cursor.Position = PointToScreen(startingPoint);
ms = 0;
sec = 0;
min = 0;
hour = 0;
death++;
}
或
或者创建另一个变量,在每次调用该方法时使用该变量将其添加到死亡中
int death = 0;
int _numberToAddEachTime = 1;
private void MoveToStart()
{
Count.Text = death.ToString();
Point startingPoint = panel1.Location;
startingPoint.Offset(301, 543);
Cursor.Position = PointToScreen(startingPoint);
ms = 0;
sec = 0;
min = 0;
hour = 0;
death = death + _numberToAddEachTime;
}
death=+1
的语法不太正确。。。想想那句话是什么意思。你的逻辑几乎是正确的。你需要将death的值赋回到文本框中,还需要读取运算符重载。你可以使用death+=1,你应该在更改后将其放入Count.text,而不是之前。我也尝试了Count.text=(Int32.Parse(Count.text)+1).ToString()代码>但这给了我一个错误:mscorlib中发生了类型为“System.FormatException”的未处理异常。dll@LeroyBeukers您是否也在使用调试器单步执行代码。。在您熟悉如何使用+=
操作符之前,您应该坚持使用老方法death=death+1
您还需要了解转换(字符串)和转换ToString
方法之间的区别。。不要把你的简单问题复杂化,这不是答案。看代码,你可以清楚地看到OP最初给文本框赋值,但在死亡值增加后,它不会更新文本框。@MethodMan:你的权利。我只给出了一半的答案。我已经更新了答案。
int death = 0;
int _numberToAddEachTime = 1;
private void MoveToStart()
{
Count.Text = death.ToString();
Point startingPoint = panel1.Location;
startingPoint.Offset(301, 543);
Cursor.Position = PointToScreen(startingPoint);
ms = 0;
sec = 0;
min = 0;
hour = 0;
death = death + _numberToAddEachTime;
}