Tres expresiones relacionadas: evento, delegado, controlador de eventos. Siempre me confundo por quién se "agrega" a quién.¿Cuál es la diferencia entre un tipo de delegado y un tipo de gestor de eventos?
event += handler
event += delegate
handler += delegate
Por lo que sé:
- delegado: un puntero a una función con una firma conocida.
- manejador de eventos: un delegado que está registrado en un evento. Básicamente, ¿es lo mismo que un delegado?
- evento: una lista de delegados \ eventos manipuladores que se ejecutan cuando el evento se invoca usando evento()
Lo que me confunde más es esta firma en MSDN:
public delegate void EventHandler(Object sender, EventArgs e)
Si no me equivoco, los eventos son "simplemente "delegados especializados con objetivos múltiples. Sin embargo, no tiene la especificación de C# para buscarla. –
@Michael: en segundo lugar su opinión. Un 'EventHander' es solo un delegado como' Action', 'TimerCallback' y muchos otros. La diferencia radica en el 'MulticastDelegate' utilizado para enviar eventos a muchos delegados que manejan eventos. – eFloh