C# 打错了吗?
我是编程新手,这门课上的事情让我头疼 这是我的代码(类型基于userinput) 这些是我的课程:C# 打错了吗?,c#,overriding,inherited,C#,Overriding,Inherited,我是编程新手,这门课上的事情让我头疼 这是我的代码(类型基于userinput) 这些是我的课程: class Account { protected int balance; protected int accountnr = 1; protected bool credit; public Account() { newNr++; accountnr = newNr; } public overri
class Account
{
protected int balance;
protected int accountnr = 1;
protected bool credit;
public Account()
{
newNr++;
accountnr = newNr;
}
public override string ToString()
{
return "AccNr: " + Nr.ToString("G") + ", balance: " + balance.ToString("C");
}
}
class SaveAcc: Account
{
public int rate;
public SaveAcc()
{
credit = true;
rate = 0.03;
}
public override string ToString()
{
return "AccNr: " + Nr.ToString("G") + ", balance: " + balance.ToString("C") + credit.ToString();
}
}
当我创建SavAcc对象时,调用了“错误”覆盖。我的目标是显示位于SavAcc继承类中的override ToString方法提供的所有信息。我是否遗漏了一些明显的东西?更改此项:
switch (type)
{
case 1:
SaveAcc savings = new SaveAcc();
break;
default:
Console.WriteLine("No such choice");
break;
}
return new Account();
为此:
switch (type)
{
case 1:
return new SaveAcc();
default:
Console.WriteLine("No such choice");
return new Account();
}
SavAcc在哪里?什么是
SaveAcc
?您在哪里调用它?输入错误,SalAcc应该是SaveAcc@leppieOK,在案例1
中,您永远不会返回创建的实例。你可能是有意的。读一下这篇文章,然后解释为什么你的代码可以像橡皮鸭一样工作。您无法找到的地方是bug所在的位置。此外,这也是stp usng abbrvs n yr cd的机会。这让阅读变得异常困难,而阅读困难恰恰与初学者的愿望相反。它不是一个SaveAcc
。这是一个SavingsAccount
。它不是accountnr
,而是accountNumber
。谢谢,为什么不需要中断?break
告诉开关不要“掉入”下一种情况。由于return
会导致整个方法立即退出,因此不可能继续执行该开关,因此无需包括break
switch (type)
{
case 1:
return new SaveAcc();
default:
Console.WriteLine("No such choice");
return new Account();
}