2016-03-31 14 views
0

Ben programlama yeniyim ve bu sınıf işler başımı yaptığını İşte Yanlış yükleme geçersiz mi?

(tip userinput dayanmaktadır)

public static Account CreateAccount(int type) 
{ 
    switch (type) 
    { 
     case 1: 
      SaveAcc savings = new SaveAcc(); 
     break; 

     default: 
      Console.WriteLine("No such choice"); 
     break; 

    } 
    return new Account(); 
} 

Bunlar benim sınıfları vardır benim kodudur:.

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

Bir SavAcc nesnesi oluşturduğumda "yanlış" geçersiz kılma çağrılıyor. Amacım, SavAcc devralınan sınıfında bulunan geçersiz kılma ToString yöntemiyle verilen tüm bilgileri göstermektir. Belli bir şey eksik miyim?

+0

? SaveAcc nedir? Nereye çağırıyorsun? – leppie

+0

Typo, SalAcc SaveAcc @leppie – 153qa

+2

olması gerekiyordu, 'durumda 1' durumunda, oluşturulan örneği hiçbir zaman döndürmezsiniz. Muhtemelen istemiştin. – leppie

cevap

0

Değişim bu: Buna

switch (type) 
{ 
     case 1: 
      SaveAcc savings = new SaveAcc(); 
     break; 

     default: 
      Console.WriteLine("No such choice"); 
     break; 

} 
return new Account(); 

: SavAcc` `nerede

switch (type) 
{ 
    case 1: 
     return new SaveAcc(); 
    default: 
     Console.WriteLine("No such choice"); 
     return new Account(); 
} 
+0

Teşekkür ederim, neden ara vermek gerekli değil? – 153qa

+1

'break', anahtarın bir sonraki duruma" geçmemesini "söyler. 'Geri', tüm yöntemin oradan oradan çıkıp çıkmasına neden olduğundan, anahtarı yürütmeye devam etmek mümkün değildir, bu nedenle 'break' –

+0

'u dahil ederek bunu engellemenize gerek yoktur. Harika bir yanıt için teşekkürler – 153qa

İlgili konular