C# 当试图添加一个值时,它只给出新的值C

C# 当试图添加一个值时,它只给出新的值C,c#,C#,我正在制作一个银行ap,用于跟踪某人在银行中的金额,称为Saldo 所以我创建了一个constructor,它为一个帐户指定一个名称,并跟踪每个人的余额 然而,在我目前的代码中,我只能添加一次钱,当我更改输入时,它会自动更改为该值,而不会添加或减去它所能做的 代码的重要部分是 private void StortL_Click(object sender, EventArgs e) { Bankrekening BankrekeningL = new Bankre

我正在制作一个银行ap,用于跟踪某人在银行中的金额,称为Saldo 所以我创建了一个constructor,它为一个帐户指定一个名称,并跟踪每个人的余额 然而,在我目前的代码中,我只能添加一次钱,当我更改输入时,它会自动更改为该值,而不会添加或减去它所能做的

代码的重要部分是

    private void StortL_Click(object sender, EventArgs e)
    {
        Bankrekening BankrekeningL = new Bankrekening(bankrekeningLinks.Naam, 0);

        double saldodouble = 0;
        int bedrag = 0;
        int decimalL = 0;
        int wholeL = 0;
        decimalL = Convert.ToInt32(tbDecimaleL.Text);
        wholeL = Convert.ToInt32(tbWholeL.Text) * 100;
        bedrag = wholeL + decimalL;
        Bankrekening BankrekeningL2 = new Bankrekening(bankrekeningLinks.Naam, BankrekeningL.Saldo);
        BankrekeningL2.Stort(bedrag);
        lbIsaldoL.Text = Convert.ToString(BankrekeningL2.Saldo);
    }
}
}

因此,目前正在发生的是,不是将文本框中的数字添加到saldo的值,而是将saldo的值设置为文本框中任何内容的值。
例如,我想在我的银行账户上加上50欧元,我之前加了100欧元,因此我的跟踪余额的标签应该加上150欧元,而不是50欧元。

您每次都在创建一个新对象,而不是为同一个人使用同一对象。 因此,如果您已经为用户创建了一个对象 他在增加资金,你需要使用创建的同一个对象,而不是再次创建它

我认为这一行是问题所在:

Bankrekening BankrekeningL=新BankrekeningbankrekeningLinks.Naam,0

可能的解决办法:

您可以保留一个银行存款对象的列表,并使用LINQ检查对象是否已经存在

如果存在,则使用同一对象,否则创建新对象

差不多

List<Bankrekening> list = new  List<Bankrekening>();
 if(list.Any(x=>x.Name == "XYZ")> 
 // your code to add
else
    Bankrekening BankrekeningL2 = new Bankrekening(bankrekeningLinks.Naam, BankrekeningL.Saldo);

您需要将BankrekeningL声明从函数外部移动到表单中以保留其值,当前,您每次单击按钮都会创建一个新实例

Bankrekening BankrekeningL;
public FormName()
{
    BankrekeningL = new Bankrekening("name");
}

private void StortL_Click(object sender, EventArgs e)
{
    double saldodouble = 0;
    int decimalL = Convert.ToInt32(tbDecimaleL.Text);
    int wholeL = Convert.ToInt32(tbWholeL.Text) * 100;
    int bedrag = wholeL + decimalL;
    BankrekeningL.Stort(bedrag);
    lbIsaldoL.Text = BankrekeningL.Saldo.ToString();
}

你的问题是什么?你错过了问题的重要部分,发生了什么,发生在哪里,你期望发生什么,你所做的一切很抱歉,我只是编辑了我的问题,并尽可能清楚地说明了我的问题。你正在将0添加到一个为0的变量中,然后打印出第一个0,然后再打印出来……这样你就可以得到0了。我觉得还可以。
Bankrekening BankrekeningL;
public FormName()
{
    BankrekeningL = new Bankrekening("name");
}

private void StortL_Click(object sender, EventArgs e)
{
    double saldodouble = 0;
    int decimalL = Convert.ToInt32(tbDecimaleL.Text);
    int wholeL = Convert.ToInt32(tbWholeL.Text) * 100;
    int bedrag = wholeL + decimalL;
    BankrekeningL.Stort(bedrag);
    lbIsaldoL.Text = BankrekeningL.Saldo.ToString();
}