C# 如何阻止值刷新?

C# 如何阻止值刷新?,c#,C#,我是C#新手,试图为大学作业制作一个基本的模拟储蓄账户界面,但当我从500英镑的余额中减去一笔钱时,当我再次减去时,它会再次刷新。例如,如果我取10,我将得到490,如果我取5,它将从500中减去,我将再次得到495。那么我如何保留价值呢? 代码如下: namespace Savings_Account { public partial class Menu : Form { public Menu() { Initiali

我是C#新手,试图为大学作业制作一个基本的模拟储蓄账户界面,但当我从500英镑的余额中减去一笔钱时,当我再次减去时,它会再次刷新。例如,如果我取10,我将得到490,如果我取5,它将从500中减去,我将再次得到495。那么我如何保留价值呢? 代码如下:

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:这很公平。这是有道理的。