如何在C#Windows窗体的派生类中创建具有不同唯一属性的对象,

时间:2018-11-04 17:13:27

标签: c# windows-forms-designer

我有一个银行应用程序,可以在其中创建一个储蓄或支票帐户号码。我有一个抽象的Account类和一个从其继承的Savings and Checking类。创建帐户后,该帐户必须是支票帐户或储蓄帐户(这是通过复选框和单击按钮完成的),因此分配的帐户ID对于支票帐户或储蓄帐户是唯一的。问题是我是否要在创建帐户时添加他们是大学生还是高龄公民(通过复选框完成),这将与常规支票或储蓄帐户不同。添加此功能的目的是,当我创建月末报表时,为大学生或老年人创建的帐户将在其支票帐户上获得较低的月费,并在其储蓄帐户上获得较高的利率。

我将帐户ID存储在列表中,“ 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; }
    }

0 个答案:

没有答案