Как создать объекты, чтобы иметь разные уникальные свойства в производных классах в C # Windows Form, - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть банковское приложение, в котором я создаю номер счета для сберегательного или текущего счета. У меня есть абстрактный класс Account и класс Savings and Checking, который наследуется от него. Когда учетная запись создается, она должна быть либо чековой, либо сберегательной (это делается с помощью флажка и кнопки щелчка), поэтому назначенный идентификатор учетной записи является уникальным для проверки или сбережения. Вопрос в том, хочу ли я добавить, являются ли они студентом колледжа или пожилым гражданином (это делается с помощью флажка), когда они создают учетную запись, которая будет уникальной только для обычного текущего или сберегательного счета. Цель добавления этого заключается в том, что когда я создаю учетные записи на конец месяца, созданные для студента колледжа или пожилого гражданина, они получат меньшую ежемесячную плату на своем текущем счете и более высокую процентную ставку на своем сберегательном счете.

Я храню идентификатор учетной записи в списке, и «saccounts» является объектом для класса сберегательного счета, а «caccounts» является объектом для класса проверочного счета.

    private int _nextIndex = 0;
    List<Account> saccounts = new List<Account>();
    List<Account> caccounts = new List<Account>();
    private void createButton1_Click(object sender, EventArgs e)
    {
        createNewAccount();

        clearFields();
    }

Здесь создается учетная запись. При использовании будет установлен флажок для проверки или сбережений, и учетная запись будет создана и сохранена в списке учетных записей.

                if (checkingRadioButton1.Checked == true)
            {
                _nextIndex++;
                transactionLabel1.Text = "Checking Account: #" + _nextIndex + " created with a starting balance of $" + balance;
                accountTextBox1.Text = "" + _nextIndex;
                caccounts.Add(new CheckingAccount(balance)

                {
                    AccountID = _nextIndex
                });
            }
            else if (savingsRadioButton2.Checked == true)
            {
                _nextIndex++;
                transactionLabel1.Text = "Savings Account: #" + _nextIndex + " created with a starting balance of $" + balance;
                accountTextBox1.Text = "" + _nextIndex;
                saccounts.Add(new SavingsAccount(balance)

                {
                    AccountID = _nextIndex
                });
            }

Вот так у меня есть настройка класса.

    public abstract class Account  
    {

        public abstract int AccountID { get; set; }

    }
    class SavingsAccount : Account
    {
        private int accountId;
        private int senioraccountid;
        public override int AccountID { get; set; }
    }
    class CheckingAccount : Account
    {
        private int accountId;
        private int collegeaccountid;
        public override int AccountID { get; set; }
    }
...