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