C#

2011-01-27 8 views
5

tener el mismo problema que yo era la semana pasada únicamente con inheiriting de la clase padre:C#

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

    timeZone = TimeZone; 
}//end of ExtendedTime 

:base(hour,minute) es donde tengo este error. Dice el mismo problema para ambas horas y minutos. Ahora, por lo general, diría que me falta algo como propiedad, pero lo intenté y no sirvió para nada.
en la hora y el minuto de la clase padre se declaran de la siguiente manera:

internal int hour; 
    internal int minute; 

Y tengo setters y getters configuración.

Respuesta

17

usted está tratando de utilizar los campos hour y minute cuando probablemente referimos a utilizar los parámetros del constructor. No puede usar campos (ni ningún otro miembro de instancia) cuando llama a un constructor de clase base.

Personalmente me gustaría cambiar los parámetros del constructor tengan nombres más convencionales:

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

Tenga en cuenta que si ha realizado sus campos privada en lugar de internos, el problema habría sido más evidente, a medida que wouldn 't tienen acceso a los campos en el primer lugar :)

+0

Gracias. He visto la solución para este proyecto y juro que se supone que debe ser sensible a las mayúsculas y minúsculas de la clase principal.^_^ –

+0

@allthosemiles: No sé a qué se refiere ... pero * es * sensible a las mayúsculas y minúsculas, y todavía no puede usar los miembros de la instancia ... –

+0

¿Por qué no puede usar los campos al llamar a un constructor de la clase base? ¿Sabes dónde encontrar la documentación sobre esto? –

1

Usted no está pasando sus argumentos:

Hour != hour 
Minute != minute 

Cambiar a

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

Creo que puede estar teniendo un problema de caja (C# entre mayúsculas y minúsculas), intente esto:

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

Claramente, int Hour, int Minute, String TimeZone no son parámetros adecuados. Use nombres de objeto en parámetros, no su clase.