Cita:
Al González comentó:
Me pregunto cómo será la implementación interna de Propiedad evento += Manejador de evento, es decir el encadenamiento de manejadores, y si este encadenamiento puede ser establecido tanto de la forma manejador anterior + manejador nuevo, como de la forma manejador nuevo + manejador anterior, es decir, con la libertad establecer su ejecución en cualquier orden.
|
Pues la implementación es como comenta Delphi.com.ar que se tendria que hacer en Delphi, es decir con una lista de apuntadores que se van llamando.
Respecto a la posibilidad de establecer el orden de ejecución de los eventos, no se puede, se llamarán en el orden de inserción, no es más que una cola.
Cita:
Al González comentó:
Imagino que quizás C# guarda una lista de todos los manejadores asignados al mismo evento de un objeto, o bien, la estructura de rutinas .NET presenta de forma nativa esta característica.
|
Lo primero, .NET no tiene nada que ver en esto, de hecho C# es el único lenguaje que soporta este tipo de mecanismo.
Cita:
Al González comentó:
Lo más parecido que he visto a encadenaciones automáticas de manejadores de eventos, es cuando se define un manejador de evento en una plantilla y en la clase descendiente se vuelve a definir.
|
De hecho, el mecanismo que acabo de explicar, que en C# no se explica como evento sino con un concepto nuevo llamado "delegado" (un evento en C# es un tipo concreto de delegado) se explica como una nueva técnica evolución de los templates de c++ que es lo que tu comentas.