Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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#_Overriding_Inherited - Fatal编程技术网

C# 打错了吗?

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

我是编程新手,这门课上的事情让我头疼

这是我的代码(类型基于userinput)

这些是我的课程:

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();
}