3.Eventos
Funcionamientos y usos de eventos.
Los eventos en C# son una forma de notificar a los objetos
que algo ha ocurrido en otro objeto o en el sistema. Los eventos se utilizan
para implementar la comunicación entre objetos en una aplicación.
Así mismo, los eventos son un mecanismo de programación en el que un
objeto (el "origen" del evento) notifica a otros objetos (los
"suscriptores") sobre algún suceso que ha ocurrido. Esta notificación
se realiza mediante el uso de un delegado, que es un tipo especial en C# que
permite representar un método como un objeto.
La clase que origina el evento define un evento y su tipo de
delegado, y los objetos que desean ser notificados se suscriben a ese evento
mediante el operador "+=". Cuando ocurre el suceso, la clase origen
invoca el evento, lo que hace que se ejecuten todos los métodos suscriptos.
Clasificación de los eventos
En C#, los eventos se clasifican en dos categorías:
- Eventos delegados: son eventos que se basan en el delegado System.Delegate y su tipo derivado System.EventHandler. Este tipo de eventos es el más común y fácil de utilizar en C#. Un evento delegado se puede declarar como una variable del tipo EventHandler y se puede asignar un método que se ejecutará cuando se produzca el evento.
- Eventos custom: son eventos que se pueden
personalizar y crear a medida según las necesidades de la aplicación. Para
crear un evento personalizado, primero debemos crear un delegado personalizado
y luego declarar el evento utilizando este delegado.
Un controlador de eventos es un método que se ejecuta cuando
se produce un evento. En C#, los controladores de eventos se asocian a un
evento mediante la suscripción al evento. La suscripción se realiza utilizando
el operador += y proporcionando una referencia al método que se ejecutará
cuando se produzca el evento.
Pasos para crear y asociar eventos en C#
1.
Primero, Defina un delegate para el tipo de
evento: Un delegate es un tipo que representa referencias a métodos con una
firma determinada. Para crear un delegate para su evento, declare un tipo de
delegate que tenga la misma firma que los controladores de eventos que desea
asociar con el evento.
2.
Luego, Defina un evento basado en el delegate:
Para crear un evento, declare un evento en su clase que utilice el delegate
creado en el paso 1.
3.
En tercer lugar, Raise the event: Para disparar
el evento, llame al evento en su código y proporcione el objeto que es el
origen del evento y un objeto EventArgs que contenga información adicional
sobre el evento.
4.
En cuarto lugar, asociar el controlador de
eventos: Para asociar un controlador de eventos con el evento, simplemente agregue
un método con la misma firma que el delegate a la lista de controladores de
eventos del evento.
5. En quinto lugar, asociar el controlador de eventos: Para asociar un controlador de eventos con el evento, simplemente agregue un método con la misma firma que el delegate a la lista de controladores de eventos del evento.
En este ejemplo, la clase PublicadorDeEventos tiene
un evento llamado MiEvento y la clase SuscriptorDeEventos tiene
un método ManejarEvento que es asociado con el evento en la clase Programa.
Cuando se llama al método LanzarEvento en la clase PublicadorDeEventos,
se lanza el evento y se ejecuta el método ManejarEvento en la clase SuscriptorDeEventos.
1.
Comentarios
Publicar un comentario