C#

2011-01-27 13 views
5

Avere lo stesso problema mi è stato la scorsa settimana solo con inheiriting dalla classe padre:C#

public ExtendedTime(int Hour, int Minute, String TimeZone) :base(hour, minute) 
{ 

    timeZone = TimeZone; 
}//end of ExtendedTime 

:base(hour,minute) è dove ho questo errore Dice lo stesso problema sia per ora che per minuto. Ora di solito direi che mi manca qualcosa di lontano come proprietà, ma ho provato a farlo senza troppe cose.
nell'ora classe padre e dei minuti sono dichiarate come segue:

internal int hour; 
    internal int minute; 

e non ho setter e getter setup.

risposta

17

si sta cercando di utilizzare i campi hour e minute quando probabilmente si intende utilizzare i parametri del costruttore. Non è possibile utilizzare i campi (o qualsiasi altro membro di istanza) quando si chiama un costruttore della classe base.

Personalmente mi piacerebbe modificare i parametri del costruttore di avere i nomi più convenzionali:

public ExtendedTime(int hour, int minute, String timeZone) : base(hour, minute) 
{  
    this.timeZone = timeZone; 
} 

Nota che se hai fatto i vostri campi privato anziché interna, il problema sarebbe stato più evidente, come si wouldn 't hanno accesso ai campi, in primo luogo :)

+0

Grazie. Ho visto la soluzione per questo progetto e giuro che doveva essere case sensitive per la classe genitore.^_^ –

+0

@allthosemiles: non so cosa intendi ... ma * è * sensibile al maiuscolo/minuscolo e non puoi ancora usare i membri dell'istanza ... –

+0

Perché non puoi usare i campi quando chiami un costruttore di classe base? Sai dove trovare la documentazione su questo? –

1

non stai passando le sue argomentazioni:

Hour != hour 
Minute != minute 

Cambiarlo in

public ExtendedTime(int hour, int minute, string timeZone) : base(hour, minute) 
0

Penso che si potrebbe avere un problema involucro (C# è case sensitive), provate questo:

public ExtendedTime(int hour, int minute, String TimeZone) :base(hour, minute) 
0

Chiaramente, int Hour, int Minute, String TimeZone non sono parametri corretti. Usa i nomi degli oggetti nei parametri, non nella loro classe.