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