AX7 - 4/5 Suscribir en tiempo de ejecución
A continuación iremos un paso más allá y lo que haremos es ligar dos métodos a un delegate en tiempo de ejecución.
¿Qué quiero decir?
En esta ocasión no utilizaremos el atributo SubscribesTo sino que iremos añadiendo métodos al delegate, y cuando lo ejecutemos, se dispararán todos.
Esto lo haremos con la siguiente sintaxis:
delegado += eventHandler(Método);
Nota: Recordad que los métodos deben tener los mismos parámetros que el delegate para poder ser suscritos.
¿Qué quiero decir?
En esta ocasión no utilizaremos el atributo SubscribesTo sino que iremos añadiendo métodos al delegate, y cuando lo ejecutemos, se dispararán todos.
Esto lo haremos con la siguiente sintaxis:
delegado += eventHandler(Método);
class Test
{
delegate void infoDelegate(str _info){}
static void main(Args args)
{
Test Test = new Test();
//Ligamos(Suscribimos) los dos métodos al delegate
Test.infoDelegate += eventHandler(Test.infoMethod);
Test.infoDelegate += eventHandler(Test::staticinfoMethod);
//Ejecutamos el delegate que a su vez ejecutará los métodos que acabamos de asociar
Test.infoDelegate("Hola");
}
public void infoMethod(str _info)
{
info(_info + " desde infoMethod.");
}
static public void staticInfoMethod(str _info)
{
info(_info + " desde staticInfoMethod.");
}
}
{
delegate void infoDelegate(str _info){}
static void main(Args args)
{
Test Test = new Test();
//Ligamos(Suscribimos) los dos métodos al delegate
Test.infoDelegate += eventHandler(Test.infoMethod);
Test.infoDelegate += eventHandler(Test::staticinfoMethod);
//Ejecutamos el delegate que a su vez ejecutará los métodos que acabamos de asociar
Test.infoDelegate("Hola");
}
public void infoMethod(str _info)
{
info(_info + " desde infoMethod.");
}
static public void staticInfoMethod(str _info)
{
info(_info + " desde staticInfoMethod.");
}
}
Nota: Recordad que los métodos deben tener los mismos parámetros que el delegate para poder ser suscritos.
Comentarios
Publicar un comentario