private void button2_Click(object sender, EventArgs e)
{
int a,sum=0;
a = 10;
sum = sum + a;
MessageBox.Show( sum + "Sum Result");
}
每次点击按钮,我都会得到答案10.我想存储结果。假设我点击了5次然后应该有50个。上面的代码可以让你更好地理解我想要的东西。
如果可能,其他选项我通过某种方法在按钮事件之外得到此结果。我是C#的新手,所以感觉很多问题。
答案 0 :(得分:0)
正如@tnw试图告诉你的那样 - 将sum
移到函数之外:
private sum = 0;
private void button2_Click(object sender, EventArgs e)
{
sum = sum + 10;
MessageBox.Show( sum + "Sum Result");
}
这应该有效
您遇到的问题是,每次调用此函数时,函数内声明的每个变量都会被初始化,并在退出函数时被丢弃。
使用外部的变量,你可以将它变成你的类的一个字段,只要你正在使用的实例(例如表单的实例)就会保存在内存中。
答案 1 :(得分:0)
这是因为每次调用函数时都会重新初始化sum=0;
。尝试将其设置为Class中的全局变量,然后调用它。
这样,当调用函数时,sum
的值不会回到0,而是从它离开的位置开始递增。
// somewhere above
int sum = 0;
// then the function
private void button2_Click(object sender, EventArgs e)
{
sum = sum + 10;
MessageBox.Show(sum + " = Sum Result");
}
..因为您没有使用a
或b
。我删除了它们。但是,如果您在函数内部使用它们(在您尚未发布的代码中),请将它们添加回来。
每次调用该函数时,都会创建名为sum
的新变量,并在函数末尾删除。因此,每次按下按钮时,sum最初的值都为 0 。添加10,总是返回10.
全局变量在类本身内声明。每次调用函数时都会重新创建函数内部的每个变量(例如这个变量),并且它将具有您提供的值。所以这是一种更好的全局写变量的方法,下次需要它的值。