Я работаю над этой программой со вчерашнего дня, но я не знаю причину проблемы. Когда, я запускаю программу и вводя сумму, которую нужно перевести с «Проверка учетной записи на Сберегательную учетную запись», программа вычитает введенную сумму из учетной записи «Проверка», но не добавляет к сберегательной учетной записи.Перевод с расчетного счета?
Как решить эту проблему? Любая помощь приветствуется.
public partial class Transfer : Window
{
private string PIN;
Accounts AccountsList = new Accounts();
//constructor
public Transfer(string pin, Accounts myAcounts)
{
InitializeComponent();
AccountsList = myAcounts;
PIN = pin;
}
//save to file method
public void saveToFile()
{
using (StreamWriter sw = new StreamWriter("Acounts.txt"))
{
for (int i = 0; i < AccountsList.Count; i++)
{
var data = new List<string>
{
AccountsList[i].ACCOUNTYPE.ToString()
,AccountsList[i].PIN
,AccountsList[i].ACCOUNTNUMBER
,AccountsList[i].ACCOUNTBALANCE.ToString()
};
var account = String.Join(";", data);
sw.WriteLine(account);
}
}
}
private void btnOK_Click(object sender, RoutedEventArgs e)
{
try
{
string txtAmount = txtAmountInTransfer.Text;
double amount = 0;
bool AmountCorrect = double.TryParse(txtAmount, out amount);
Account chequingAccount = new Account();
Account savingAccount = new Account();
//deposit from CHEQUING ACCOUNT to SAVING ACCOUNT
{
//validate user entries
for (int i = 0; i < AccountsList.Count; i++)
{
//withdraw from CHEQUING ACCOUNG
if (AccountsList[i].ACCOUNTYPE == 'C' && AccountsList[i].PIN == PIN)
{
if (rbChequing_to_Saving.IsChecked == true)
{
chequingAccount = AccountsList[i];
}
else
{
savingAccount = AccountsList[i];
}
chequingAccount.ACCOUNTBALANCE -= amount;
AccountsList[i].ACCOUNTBALANCE += amount;
//saveToFile();
//break;
}
//if (AccountsList[i].ACCOUNTYPE == 'S')
// savingAccount.ACCOUNTBALANCE += amount;
//saveToFile();
}
}
}
catch (Exception error)
{
MessageBox.Show(error.Message);
}
}
}
}
Можете ли вы мне немного объяснить, пожалуйста, с новым C# – afgboy
@afgboy: Поскольку Account (класс) является ссылочным типом, когда вы выполняете 'chequingAccount = AccountsList [i];', вы копируете ссылку 'AccountsList [i ] '' 'chequingAccount'. Поэтому, если вы измените любой из них, это повлияет на значение в другом. Читайте о ** Типы значений Vs Reference types **. – DarkKnight