Я пытаюсь запрограммировать банковскую систему. Это для назначения класса, так что я не ищу полное решение, а просто, как выполнить sh один аспект. Система имеет класс Customer, абстрактный класс Account и 4 производных класса Account. Я использую Windows формы, чтобы принять пользовательский ввод. Пользователь вводит информацию о клиенте в текстовые поля, затем нажимает кнопку, которая создает новый объект клиента и добавляет его в список клиентов, который был создан ранее в коде:
customerList.Add(new Customer(custID, name, phone));
Затем пользователь может ввести информацию об учетной записи и выберите тип учетной записи, затем нажмите другую кнопку, чтобы создать экземпляр объекта учетной записи с объектом Customer в качестве одного из его параметров.
checkingList.Add(new CheckingAccount(_____, acctNum, startBal, "Checking"));
Вот перегруженный конструктор учетной записи:
public Account(Customer customer, int acctNum, decimal balance, string acctType)
{
_customer = customer;
_acctNum = acctNum;
_balance = balance;
_APY = APY;
_acctType = acctType;
}
Моя проблема в том, что я не знаю, что должно go в строке new CheckingAccount(_____, acctNum, startBal, "Checking")
вместо подчеркиваний, показанных здесь. Идея состоит в том, чтобы использовать композицию, чтобы показать, что учетная запись принадлежит клиенту (т. Е. У клиента есть учетная запись), чтобы я мог показать список учетных записей, принадлежащих конкретным c клиентам. Это прекрасно работает при создании экземпляров объектов непосредственно в коде без ввода данных пользователем, потому что я могу назвать переменную объекта Customer по мере ее написания. Например:
Customer customer1 = new Customer(1000, "John Doe", "555-555-5555");
customerList.Add(customer1);
checkingList.Add(new CheckingAccount(customer1, 300001, 5000, "Checking"));
savingsList.Add(new SavingsAccount(customer1, 400001, 10000, "Savings"));
Вместо приведенных выше подчеркиваний я попытался использовать custID
и Customer.custID
, но постоянно получаю следующую ошибку:
Аргумент 1 : невозможно преобразовать из int в Bank.Customer. И я понимаю, почему появляется ошибка, но я не могу найти правильный путь, чтобы не получить ошибку.
Еще одна идея, о которой я подумал, но не могу понять, как ее реализовать, - это просто исключить объект Customer из списка параметров в перегруженном конструкторе. Вместо этого, чтобы вызвать учетную запись определенного клиента c, я бы использовал индекс объектов в списке. Но, помимо простого знания порядка, в котором клиенты / учетные записи были добавлены в их соответствующие списки, как пользователь сможет получить нужную информацию для нужного клиента / учетной записи?