Forums Últimos mensajes - Powered by IBM
 

Implementar algo obligatoriamente

14/10/2007 - 20:47 por Clara | Informe spam
Hola,
Es posible hacer de alguna forma que los formularios heredados de uno base
DEBAN implementar un método o una propiedad?
Tengo un formulario B del que heredan H1 y H2. Me gustaria definir "algo"
de forma que todos los herederos de B debieran implementar
Yo habia creado una interfaz IP y habia hecho:
class B : IP
{
//el formulario base implementa IP
}

pero como obligo a que los herederos H1 y H2 tambien lo hagan?

Grácias
 

Leer las respuestas

#1 Alberto Poblacion
14/10/2007 - 21:02 | Informe spam
"Clara" wrote in message
news:%
Es posible hacer de alguna forma que los formularios heredados de uno base
DEBAN implementar un método o una propiedad?
Tengo un formulario B del que heredan H1 y H2. Me gustaria definir "algo"
de forma que todos los herederos de B debieran implementar
Yo habia creado una interfaz IP y habia hecho:
class B : IP
{
//el formulario base implementa IP
}

pero como obligo a que los herederos H1 y H2 tambien lo hagan?



Cuando en una clase base quieres que las clases hijas deban
obligatoriamente implementar un método, lo que se hace es marcar el método
como abstracto:

protected abstract void DebeImplementarse(tipo args);

Para poder tener un método abstracto, la propia clase también debe
marcarse como abstracta añadiéndole la palabra "abstract" a la declaración
de la clase.

Esto vale para cualquier clase en C#, pero si lo haces sobre la clase que
implementa un formulario, tiene el problema de que deja de funcionar el
diseñador gráfico, que necesita crear una instancia de la clase para
funcionar en tiempo de diseño, y como la clase es abstracta no la puede
instanciar (solo se pueden instanciar las clases hijas que implementen el
método y por tanto no sean abstractas). Por lo menos, asi era con Visual
Studio 2003, me imagino que con el 2005 seguirá pasando lo mismo.

Preguntas similares