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);


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.");
    }
}



Nota: Recordad que los métodos deben tener los mismos parámetros que el delegate para poder ser suscritos.

Comentarios