llamar primero al objeto y luego a su clase

23/01/2008 - 17:44 por Xuri | Informe spam
bueno, os explico, vengo de trabajar con VisualFox y cuando hacias una clase,
por ejemplo un boton, al introducir el objeto en un formulario por ejemplo,

y modificabas el evento del clic, solo se realizaba el clic de lo ultimo que
se le ha asignado , a no ser que pusieras un dodefault, me explico

evento_clic_en_boton(... ){
MessageBox.Show("antes de ejecutar la clase base");
dodefault();
MEssageBox.Show("despues de ejecutar la clase base");.


}

Esto anteriormente posteado es una simulacion, pero en foxpro se puede
hacer, como se podria hacer algo asi en c#? es que en ocasiones me interesa
uqe primero se ejecute el objeto final y a veces primero la clase base.

Como es posible realizar lo anterior en c#?

gracias

Preguntas similare

Leer las respuestas

#1 Josias
23/01/2008 - 17:58 | Informe spam
La clave esta en Virtual / Override. Es para el concepto del polimorfismo.

Este link te puede ayudar bastante:

http://www.elguille.info/colabora/N...ia_net.htm

Por cierto los foxeros tenemos un foro apropiado para preguntas especificas
de migracion VFP hacia CSharp.

El nombre del foro es: defoxa.csharp

o buscar mas info. en portalfox.com

Josias

"Xuri" escribió en el mensaje
news:
bueno, os explico, vengo de trabajar con VisualFox y cuando hacias una
clase,
por ejemplo un boton, al introducir el objeto en un formulario por
ejemplo,

y modificabas el evento del clic, solo se realizaba el clic de lo ultimo
que
se le ha asignado , a no ser que pusieras un dodefault, me explico

evento_clic_en_boton(... ){
MessageBox.Show("antes de ejecutar la clase base");
dodefault();
MEssageBox.Show("despues de ejecutar la clase base");.


}

Esto anteriormente posteado es una simulacion, pero en foxpro se puede
hacer, como se podria hacer algo asi en c#? es que en ocasiones me
interesa
uqe primero se ejecute el objeto final y a veces primero la clase base.

Como es posible realizar lo anterior en c#?

gracias
Respuesta Responder a este mensaje
#2 Xuri
23/01/2008 - 18:08 | Informe spam
gracias, voy a pasarme por ahi a ver ;)

"Josias" wrote:

La clave esta en Virtual / Override. Es para el concepto del polimorfismo.

Este link te puede ayudar bastante:

http://www.elguille.info/colabora/N...ia_net.htm

Por cierto los foxeros tenemos un foro apropiado para preguntas especificas
de migracion VFP hacia CSharp.

El nombre del foro es: defoxa.csharp

o buscar mas info. en portalfox.com

Josias

"Xuri" escribió en el mensaje
news:
> bueno, os explico, vengo de trabajar con VisualFox y cuando hacias una
> clase,
> por ejemplo un boton, al introducir el objeto en un formulario por
> ejemplo,
>
> y modificabas el evento del clic, solo se realizaba el clic de lo ultimo
> que
> se le ha asignado , a no ser que pusieras un dodefault, me explico
>
> evento_clic_en_boton(... ){
> MessageBox.Show("antes de ejecutar la clase base");
> dodefault();
> MEssageBox.Show("despues de ejecutar la clase base");.
>
>
> }
>
> Esto anteriormente posteado es una simulacion, pero en foxpro se puede
> hacer, como se podria hacer algo asi en c#? es que en ocasiones me
> interesa
> uqe primero se ejecute el objeto final y a veces primero la clase base.
>
> Como es posible realizar lo anterior en c#?
>
> gracias



Respuesta Responder a este mensaje
#3 Josias
23/01/2008 - 18:46 | Informe spam
Si, tambien chequeate los mensajes de ese foro que casualmente yo aprendí
algo sobre ese tema haciendo una pregunta similar en dicho foro.


Josias



"Xuri" escribió en el mensaje
news:
gracias, voy a pasarme por ahi a ver ;)

"Josias" wrote:

La clave esta en Virtual / Override. Es para el concepto del
polimorfismo.

Este link te puede ayudar bastante:

http://www.elguille.info/colabora/N...ia_net.htm

Por cierto los foxeros tenemos un foro apropiado para preguntas
especificas
de migracion VFP hacia CSharp.

El nombre del foro es: defoxa.csharp

o buscar mas info. en portalfox.com

Josias

"Xuri" escribió en el mensaje
news:
> bueno, os explico, vengo de trabajar con VisualFox y cuando hacias una
> clase,
> por ejemplo un boton, al introducir el objeto en un formulario por
> ejemplo,
>
> y modificabas el evento del clic, solo se realizaba el clic de lo
> ultimo
> que
> se le ha asignado , a no ser que pusieras un dodefault, me explico
>
> evento_clic_en_boton(... ){
> MessageBox.Show("antes de ejecutar la clase base");
> dodefault();
> MEssageBox.Show("despues de ejecutar la clase base");.
>
>
> }
>
> Esto anteriormente posteado es una simulacion, pero en foxpro se puede
> hacer, como se podria hacer algo asi en c#? es que en ocasiones me
> interesa
> uqe primero se ejecute el objeto final y a veces primero la clase base.
>
> Como es posible realizar lo anterior en c#?
>
> gracias



Respuesta Responder a este mensaje
#4 Alberto Poblacion
23/01/2008 - 18:47 | Informe spam
"Xuri" wrote in message
news:
bueno, os explico, vengo de trabajar con VisualFox y cuando hacias una
clase,
por ejemplo un boton, al introducir el objeto en un formulario por
ejemplo,

y modificabas el evento del clic, solo se realizaba el clic de lo ultimo
que
se le ha asignado , a no ser que pusieras un dodefault, me explico

evento_clic_en_boton(... ){
MessageBox.Show("antes de ejecutar la clase base");
dodefault();
MEssageBox.Show("despues de ejecutar la clase base");.


}

Esto anteriormente posteado es una simulacion, pero en foxpro se puede
hacer, como se podria hacer algo asi en c#? es que en ocasiones me
interesa
uqe primero se ejecute el objeto final y a veces primero la clase base.

Como es posible realizar lo anterior en c#?



Normalmente la clase base (Button) tiene un método virtual llamado
"OnClick" para disparar el evento (ya que el propio event no se puede
daclarar como virtual para hacer un override en la clase hija).
Cuando heredas de Button, para cambiar el comportamiento al disparar el
evento, lo que haces es un override del OnClick. Si desde dentro quieres
llamar al comportamiento predeterminado, lo llamas con la palabra clave
"base.":

public class MiBoton: Button
{
...
protected override OnClick(EventArgs e)
{
MessageBox.Show("antes de ejecutar la clase base");
base.OnClick(e);
MessageBox.Show("despues de ejecutar la clase base");.
}
}
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida