Eventos y delegados

Páginas: 6 (1418 palabras) Publicado: 2 de septiembre de 2014


























Eventos y Delegados
Son procesos a través de los cuales los objetos pueden comunicarse entre si un método puede llamar a otro método de otra clase pasándole valores a través de la
Lista de argumentos. sin embargo es posible que un objeto responda a otro objeto sin necesidad de conocer la instancia especifica de otro objeto.
-Delegates: Sonllamados a veces punteros a función seguros, porque se garantiza que van a devolver un valor del tipo declarado y que coincidirán con la declaración del delégate.
Si se intenta hacer una asignación con una función que no coincide con la declaración del delegate, el compilador lanzara un error y rechazara dicha asignación.
Esta clase es capaz de almacenar tanto la instancia de un objeto como ladirección del método.
Se puede declarar un delegate utilizando la palabra reservada delegate y entonces definir el tipo de función al que se quiere llamar.
La definición se parece mucho a un prototipo de c++ con la excepción de la palabra reservada delégate.
Una declaración de delegado es suficiente para definir una clase de delegado. La declaración proporciona el prototipo del delegado y“Common Language Runtime“ proporciona la implementación.
Los delegados de evento personalizados sólo son necesarios cuando un evento genera datos de evento. Muchos eventos, incluidos algunos eventos de interfaz de usuario, como los clics, no generan datos de evento. En estos casos, es apropiado el delegado proporcionado en la biblioteca de clases para el evento sin datos, System.EventHandler.
-Evento:Un evento es un mensaje que envía un objeto cuando ocurre una acción. La acción puede estar causada por la interacción del usuario, como un clic, o por otra lógica del programa. El objeto que provoca el evento se conoce como remitente del evento. El objeto que captura el evento y responde a él se denomina receptor del evento.

En las comunicaciones de eventos, el remitente del evento no sabe quéobjeto o método recibirá los eventos que provoca. Se necesita un intermediario (o mecanismo de tipo puntero) entre el origen y el receptor. .NET Framework define un tipo especial (Delegate) que proporciona la funcionalidad de un puntero a función.
Tres elementos interrelacionados proporcionan la funcionalidad de evento: una clase que proporciona los datos del evento, un delegado de evento y laclase que provoca el evento. .NET Framework tiene una convención para asignar nombre a las clases y métodos relacionados con los eventos. Si desea que la clase provoque un evento denominado EventName, necesita los siguientes elementos:
Una clase que guarde los datos del evento, denominada EventNameEventArgs. Esta clase debe derivarse de System.EventArgs.
Un delegado para el evento, denominadoEventNameEventHandler.
Una clase que provoca el evento. Esta clase debe proporcionar la declaración de evento (EventName) y un método que provoca el evento (OnEventName).
La clase de datos del evento y la clase de delegado de evento ya deben estar definidas en la biblioteca de clases .NET Framework o en una biblioteca de clases de terceros. En este caso, no es necesario que defina las clases. Porejemplo, si el evento no utiliza datos personalizados, puede utilizar System.EventArgs para los datos de evento y System.EventHandler para el delegado.
Define un miembro de evento en la clase con la palabra clave event. Cuando el compilador encuentra una palabra clave event en la clase, crea un miembro privado como:
private EventNameHandler eh = null;







Forma de escribir un evento yun delegado.
Delegate:
public delegate (tipo) DelegateMethod (parametros);

Una instancia del delegado AlarmEventHandler puede enlazarse a cualquier método que coincida con su prototipo, como el método AlarmRang de la clase WakeMeUp, como se muestra en el siguiente ejemplo.
C#
public class WakeMeUp
{
// AlarmRang has the same signature as AlarmEventHandler.
public void...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • C Delegados Y Eventos
  • Delegar
  • soy delegada
  • Delegar
  • delegar
  • delegar
  • Delegar
  • Que es delegar?

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS