Eksperymentuję z wywoływaniem funkcji delegatów z tablicy delegatów. Udało mi się utworzyć tablicę uczestników, ale jak mogę połączyć się z delegatem?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: Powodem tablicy jest to, że muszę zadzwonić do funkcji delegata przez indeks, ile potrzeba. Nie są uruchamiane w odpowiedzi na zdarzenie. W moim kodzie widzę krytyczny (głupi) błąd, ponieważ próbowałem wykonać funkcję delegata używając typu pd [] zamiast nazwy tablicy (delegatów).
Jednym z powodów, dla których nie należy indywidualnie zarządzać wyjątkami rzucanymi przez któregokolwiek z delegatów, a nie tylko łapanie pierwszego. –
Zgodnie z moją edycją delegatów nie są wykonywane w odpowiedzi na zdarzenie, ale wywoływane indywidualnie przy użyciu indeksu w tablicy. – pro3carp3
@jacob_c - tak, jeśli naprawdę chcesz :) @ pro3carp3 - w takim przypadku wystarczy uzyskać dostęp do indeksu zgodnie z normą dla tablicy. Nie ma w tym nic szczególnego, jako delegata. –