AX7 - 5/5 Múltiples llámadas a un delegate
En todos los ejemplos vistos, el delegate estaba asociado a un método de la misma clase, pero eso no tiene porque ser así.
El delegate puede estar suscrito a distintos métodos a la vez y en diferentes clases.
Aquí tenéis todo el código:
Al ejecutar el proceso cuando se llama al delegado se llamarán a todos los métodos que tengan el delegado como atributo, el orden es aleatorio, no se le puede indicar uno.
El delegate puede estar suscrito a distintos métodos a la vez y en diferentes clases.
Aquí tenéis todo el código:
class Test
{
delegate void infoDelegate(str _info){}
static void main(Args args)
{
Test Test = new Test();
Test.infoDelegate("Hola");
}
}
{
delegate void infoDelegate(str _info){}
static void main(Args args)
{
Test Test = new Test();
Test.infoDelegate("Hola");
}
}
class Class1
{
[SubscribesTo(classstr(Test), delegatestr(Test, infoDelegate))]
static public void infoMethod(str _info)
{
info(_info + " desde infoMethod class1.");
}
}
{
[SubscribesTo(classstr(Test), delegatestr(Test, infoDelegate))]
static public void infoMethod(str _info)
{
info(_info + " desde infoMethod class1.");
}
}
class Class2
{
[SubscribesTo(classstr(Test), delegatestr(Test, infoDelegate))]
static public void infoMethod(str _info)
{
info(_info + " desde infoMethod class2.");
}
}
{
[SubscribesTo(classstr(Test), delegatestr(Test, infoDelegate))]
static public void infoMethod(str _info)
{
info(_info + " desde infoMethod class2.");
}
}
Al ejecutar el proceso cuando se llama al delegado se llamarán a todos los métodos que tengan el delegado como atributo, el orden es aleatorio, no se le puede indicar uno.
Comentarios
Publicar un comentario