C# 如何阻止值刷新?
我是C#新手,试图为大学作业制作一个基本的模拟储蓄账户界面,但当我从500英镑的余额中减去一笔钱时,当我再次减去时,它会再次刷新。例如,如果我取10,我将得到490,如果我取5,它将从500中减去,我将再次得到495。那么我如何保留价值呢? 代码如下:C# 如何阻止值刷新?,c#,C#,我是C#新手,试图为大学作业制作一个基本的模拟储蓄账户界面,但当我从500英镑的余额中减去一笔钱时,当我再次减去时,它会再次刷新。例如,如果我取10,我将得到490,如果我取5,它将从500中减去,我将再次得到495。那么我如何保留价值呢? 代码如下: namespace Savings_Account { public partial class Menu : Form { public Menu() { Initiali
namespace Savings_Account
{
public partial class Menu : Form
{
public Menu()
{
InitializeComponent();
txtBalance.Text = Convert.ToString("£" + dBalance);
grpWithdraw.Enabled = false;
}
decimal dBalance = 500;
decimal dWithdraw;
private void txtPin_TextChanged(object sender, EventArgs e)
{
if (txtPin.Text == "1234")
{
grpWithdraw.Enabled = true;
}
}
private void btnWithdraw_Click(object sender, EventArgs e)
{
if (!decimal.TryParse(txtWithdraw.Text, out dWithdraw))
{
txtWithdraw.Clear();
MessageBox.Show("An invalid character has been entered");
}
else
{
txtBalance.Text = "£" + (dBalance - dWithdraw).ToString();
txtWithdraw.Clear();
}
}
}
}
使用变量dBalance进行计算
dBalance = dBalance - dWithdraw;
txtBalance.Text = "£" + dBalance.ToString();
这样,变量dBalance
将在每次提取时更新
也许现在担心这一点还为时过早,但检查你是否有足够的钱的测试应该是强制性的
if(dBalance - dWithdraw > 0)
{
dBalance = dBalance - dWithdraw;
txtBalance.Text = "£" + dBalance.ToString();
}
else
MessageBox.Show("Not enough funds!");
使用变量dBalance进行计算
dBalance = dBalance - dWithdraw;
txtBalance.Text = "£" + dBalance.ToString();
这样,变量dBalance
将在每次提取时更新
也许现在担心这一点还为时过早,但检查你是否有足够的钱的测试应该是强制性的
if(dBalance - dWithdraw > 0)
{
dBalance = dBalance - dWithdraw;
txtBalance.Text = "£" + dBalance.ToString();
}
else
MessageBox.Show("Not enough funds!");
您总是从始终为500的dBalance
中减去。您应该做的是将新值保存在dBalance
中:
dBalance = dBalance - dWithdraw
txtBalance.Text = "£" + dBalance.ToString();
理想情况下,不要在那里进行减法运算,而是创建一个名为doWithdraw()
的方法,然后在那里进行计算。您需要添加支票,以确保余额不会变为负值(除非您允许透支)等
您总是从始终为500的dBalance
中减去。您应该做的是将新值保存在dBalance
中:
dBalance = dBalance - dWithdraw
txtBalance.Text = "£" + dBalance.ToString();
理想情况下,不要在那里进行减法运算,而是创建一个名为
doWithdraw()
的方法,然后在那里进行计算。您需要添加支票以确保余额不会变为负值(除非您允许透支)等等。您在任何地方都不会更新dBalance。您只是在更新txtBalance,但每次执行提取调用时,都会再次基于dBalance计算新值。您没有在任何地方更新dBalance。你只是在更新TXTBALEANT,但每次你进行取款调用时,你都会再次根据dBalance计算新值。这是什么平台-WinForms,ASP.NET?@n8wrl:没关系,是吗?不要在标题中使用标记…@xbonez:如果这是ASP.NET,那么每次他点击他的页面,dBalance都会重置为500。如果是winforms,form类只要在运行,就会一直处于活动状态,而这不会发生。@n8wrl:这很公平。这是有道理的。这是什么平台-WinForms,ASP.NET?@n8wrl:没关系,是吗?不要在标题中使用标记…@xbonez:如果这是ASP.NET,那么每次他点击页面时,dBalance都会重置为500。如果是winforms,form类只要在运行,就会一直处于活动状态,而这不会发生。@n8wrl:这很公平。这是有道理的。