Estoy experimentando con las funciones de delegado de una matriz de delegados. Pude crear la matriz de delegados, pero ¿cómo llamo al delegado?Delegate Array
public delegate void pd();
public static class MyClass
{
static void p1()
{
//...
}
static void p2()
{
//...
}
//...
static pd[] delegates = new pd[] {
new pd(MyClass.p1),
new pd(MyClass.p2)
/* ... */
};
}
public class MainClass
{
static void Main()
{
// Call pd[0]
// Call pd[1]
}
}
EDIT: La razón de la matriz es que tengo que llamar a las funciones delegadas por un índice, según sea necesario. No se ejecutan en respuesta a un evento. Veo un error crítico (estúpido) en mi código porque intenté ejecutar la función de delegado usando el tipo pd [] en lugar del nombre de la matriz (delegados).
Una razón por la que no sería manejar individualmente las excepciones lanzadas por cualquiera de los delegados, en lugar de simplemente atrapar la primera. –
Según mi edición, los delegados no se ejecutan en respuesta a un evento, sino que se llaman individualmente usando un índice en la matriz. – pro3carp3
@jacob_c - sí, si de verdad quieres :) @ pro3carp3 - en ese caso solo necesitas acceder a él por índice como para una matriz normal. No hay nada de especial en que sea un delegado aquí. –