Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c中未处理的FormatException错误#_C#_Overriding_Formatexception_Mscorlib - Fatal编程技术网

C# c中未处理的FormatException错误#

C# c中未处理的FormatException错误#,c#,overriding,formatexception,mscorlib,C#,Overriding,Formatexception,Mscorlib,所以我的上一篇文章因为太宽而被关闭了,所以我修正了一些东西并缩小了范围。现在,当我尝试运行它时,我在第136行(CheckingAccount类中的PrintAccount覆盖)和第148行(AccountTest中的主类)上得到了错误。弹出的错误是:“mscorlib.dll中发生了类型为'System.FormatException'的未处理异常附加信息:输入字符串的格式不正确。”我不知道如何修复它。任何指导都将不胜感激。谢谢 namespace Assignment5 { clas

所以我的上一篇文章因为太宽而被关闭了,所以我修正了一些东西并缩小了范围。现在,当我尝试运行它时,我在第136行(CheckingAccount类中的PrintAccount覆盖)和第148行(AccountTest中的主类)上得到了错误。弹出的错误是:“mscorlib.dll中发生了类型为'System.FormatException'的未处理异常附加信息:输入字符串的格式不正确。”我不知道如何修复它。任何指导都将不胜感激。谢谢

namespace Assignment5
{
    class Account
    {
        //variables
        private double balance;
        private string accountName;
        private int accountNumber;

        public Account(string acctName, int acctNum, double acctBal)
        {
            accountName = acctName;
            accountNumber = acctNum;
            balance = acctBal;
        }
        //gets and sets
        public double Balance
        {
            get { return balance; }
            set
            {
                if (value >= 0)
                    balance = value;
                else
                    balance = 0;
            }
        }
        public string AccountName
        {
            get { return accountName; }
        }
        public int AccountNumber
        {
            get { return accountNumber; }
        }

        //credit, debit and print methods
        public void Credit(double a)
        {
            balance += a;
        }
        public void Debit(double a)
        {
            if (a > balance)
                Console.WriteLine("Insufficient Funds.");
            else
                balance -= a;
        }
        public virtual void PrintAccount()
        {
            Console.WriteLine("Account Name :\t{0}\nAccount Number :\t{1)\nBalance :\t{2:C}",
                accountName, accountNumber, balance);
        }

        class SavingsAccount : Account //this is how the derived class inherits from the base class, right?
        {

            public SavingsAccount(string acctName, int acctNum, double acctBal, double interest)
                : base(acctName, acctNum, acctBal)
            {
                accountName = acctName;
                accountNumber = acctNum;
                balance = acctBal;
                interestRate = interest;
            }
            private double interestRate;
            public double InterestRate
            {
                get { return interestRate; }
                set
                {
                    if (value < 0)
                        interestRate = 0;
                    else
                        interestRate = value;
                }
            }
            public void CalculateInterest()
            {
                balance = (balance * interestRate) + balance;
                Console.WriteLine("Account Name:\t{0}\nAccount Number:\t{1}\nBalance:\t{2:C}\nInterest Rate:\t{3:P2}",
                    accountName, accountNumber, balance, interestRate);
            }
            public override void PrintAccount()
            {
                Console.WriteLine("Account Name :\t{0}\nAccount Number :\t{1)\nBalance :\t{2:C}\nInterest Rate :\t{3:P2}",
                    accountName, accountNumber, balance, interestRate);
            }
        }
        class CheckingAccount : Account
        {
            public CheckingAccount(string acctName, int acctNum, double acctBal, double fee)
                : base(acctName, acctNum, acctBal)
            {
                accountName = acctName;
                accountNumber = acctNum;
                balance = acctBal;
                feeCharged = fee;
            }
            private double feeCharged;
            public double FeeAmmount
            {
                set
                {
                    if (value < 0)
                        feeCharged = 0;
                    else
                        feeCharged = value;
                }
            }
            //No idea how to "invoke the Account class and use a boolean value to see if
            //money was withdrawn."

            //public void Credit(double a)
            //{
            //    balance += a;
            //    balance -= feeCharged;
            //}
            //public void Debit(double a)
            //{
            //    if (a > balance)
            //        Console.WriteLine("Insufficient Funds.");
            //    else
            //        balance -= a;
            //        balance -= feeCharged;
            //} 

            public override void PrintAccount()
            {
                Console.WriteLine("Account Name :\t{0}\nAccount Number :\t{1)\nBalance :\t{2:C}\nFee Charged :\t{3:C}",
                    accountName, accountNumber, balance, feeCharged);
            }
        }
        class AccountTest
        {
            static void Main(string[] args)
            {
                //Step 1 & 2
                    CheckingAccount lemmonsChecking = new CheckingAccount("Lemmons-Checking", 1, 1000, 3);
                    SavingsAccount lemmonsSavings = new SavingsAccount("Lemmons-Savings", 2, 2000, .05);
                //Step 3 & 4
                    lemmonsChecking.PrintAccount();
                    lemmonsSavings.PrintAccount();
                //Step 5 & 6
                Console.WriteLine("\nDeposit $100 into checking.");
                    lemmonsChecking.Credit(100);
                    lemmonsChecking.PrintAccount();
                //Step 7 & 8
                    Console.WriteLine("\nWithdraw $50 from checking.");
                    lemmonsChecking.Debit(50);
                    lemmonsChecking.PrintAccount();
                //Step 9 & 10
                    Console.WriteLine("\nWithdraw $6000 from checking.");
                    lemmonsChecking.Debit(6000);
                    lemmonsChecking.PrintAccount();
                //Step 11 & 12
                    Console.WriteLine("\nDeposit $3000 into savings.");
                    lemmonsSavings.Credit(3000);
                    lemmonsSavings.PrintAccount();
                //Step 13 & 14
                    Console.WriteLine("\nWithdraw $200 from savings.");
                    lemmonsSavings.Debit(200);
                    lemmonsSavings.PrintAccount();
                //Step 15 & 16
                    Console.WriteLine("\nCalculate interest on savings.");
                    lemmonsSavings.CalculateInterest();
                //Step 17 & 18
                    Console.WriteLine("\nWithdraw $10,000 from savings.");
                    lemmonsSavings.Debit(10000);
                    lemmonsSavings.PrintAccount();
                    Console.WriteLine("\nPress the [ENTER] key to continue.");
                    Console.ReadLine();
                //I keep receiving errors based around the override I placed on the PrintAccount()


            }
        }
    }
}
名称空间分配5
{
类别帐户
{
//变数
私人双平衡;
私有字符串accountName;
私人国际帐户号码;
公共帐户(字符串帐户名、内部帐户名、双帐户名)
{
accountName=acctName;
accountNumber=acctNum;
余额=账户余额;
}
//获取和设置
公共双平衡
{
获取{返回余额;}
设置
{
如果(值>=0)
平衡=价值;
其他的
余额=0;
}
}
公共字符串帐户名
{
获取{return accountName;}
}
公共国际帐户号码
{
获取{return accountNumber;}
}
//贷记、借记和打印方法
公共无效信用证(双a)
{
余额+=a;
}
公共作废借方(双a)
{
如果(a>余额)
控制台。WriteLine(“资金不足”);
其他的
余额-=a;
}
公共虚拟帐户()
{
Console.WriteLine(“帐户名:\t{0}\n帐户号:\t{1)\n余额:\t{2:C}”,
账户名称、账户编号、余额);
}
class SavingsAccount:Account//这就是派生类从基类继承的方式,对吗?
{
公共储蓄账户(字符串账户名称、整数账户、双倍账户、双倍利息)
:base(acctName、acctNum、acctBal)
{
accountName=acctName;
accountNumber=acctNum;
余额=账户余额;
利率=利息;
}
私人双重利益;
公共双利率
{
获取{return interestRate;}
设置
{
如果(值<0)
利率=0;
其他的
利率=价值;
}
}
public void CalculateInterest()
{
余额=(余额*利率)+余额;
WriteLine(“帐户名:\t{0}\n帐户号:\t{1}\n余额:\t{2:C}\n利率:\t{3:P2}”,
账户名称、账户编号、余额、利率);
}
公共覆盖无效打印帐户()
{
Console.WriteLine(“帐户名:\t{0}\n帐户号:\t{1)\n余额:\t{2:C}\n利率:\t{3:P2}”,
账户名称、账户编号、余额、利率);
}
}
类别检查帐户:帐户
{
公开检查帐户(字符串帐户名称、内部帐户、双重帐户、双重费用)
:base(acctName、acctNum、acctBal)
{
accountName=acctName;
accountNumber=acctNum;
余额=账户余额;
收费=手续费;
}
私人双重收费;
公共双费表
{
设置
{
如果(值<0)
费用=0;
其他的
费=价值;
}
}
//不知道如何“调用Account类并使用布尔值来查看
//钱被取走了。”
//公共无效信用证(双a)
//{
//余额+=a;
//余额-=收取的费用;
//}
//公共作废借方(双a)
//{
//如果(a>余额)
//控制台。WriteLine(“资金不足”);
//否则
//余额-=a;
//余额-=收取的费用;
//} 
公共覆盖无效打印帐户()
{
Console.WriteLine(“帐户名:\t{0}\n帐户号:\t{1)\n余额:\t{2:C}\n费用支付:\t{3:C}”,
账户名称、账号、余额、费用);
}
}
班级会计测验
{
静态void Main(字符串[]参数)
{
//步骤1和2
CheckingAccount Lemmons Checking=新的CheckingAccount(“Lemmons Checking”,1,1000,3);
SavingsAccount Lemmons Savings=新的SavingsAccount(“Lemmons Savings”,22000.05);
//步骤3和4
lemmonChecking.PrintAccount();
lemmons savings.printcount();
//步骤5和6
Console.WriteLine(“\n将$100放入支票中。”);
莱蒙斯信用(100);
lemmonChecking.PrintAccount();
//步骤7和8
Console.WriteLine(“\n通过检查提取$50”);
莱蒙斯支票借方(50);
lemmonChecking.PrintAccount();
//步骤9和10
Console.WriteLine(“\n通过检查提取$6000”);
莱蒙斯支票借方(6000);
lemmonChecking.PrintAccount();
//步骤11和12
Console.WriteLine(“\nDepos
public override void PrintAccount()
{
    Console.WriteLine("Account Name :\t{0}\nAccount Number :\t{1)\nBalance :\t{2:C}\nFee Charged :\t{3:C}", accountName, accountNumber, balance, feeCharged);
}
public override void PrintAccount()
{
    Console.WriteLine("Account Name :\t{0}\nAccount Number :\t{1}\nBalance :\t{2:C}\nFee Charged :\t{3:C}", accountName, accountNumber, balance, feeCharged);
}