Mam zdarzenie w pętli. Próbuję zapobiec dodaniu tej samej metody do zdarzenia więcej niż raz. Zaimplementowałem akcesory add
i remove
.-event- może pojawić się tylko po lewej stronie + = lub - =
jednak otrzymuję komunikat o błędzie informujący, że:
ItemsProcessed can only appear on the left hand side of += or -=
Kiedy próbuję zadzwonić do nich, nawet w obrębie tej samej klasy.
ItemsProcessed(this, new EventArgs()); // Produces error
public event EventHandler ItemsProcessed
{
add
{
ItemsProcessed -= value;
ItemsProcessed += value;
}
remove
{
ItemsProcessed -= value;
}
}
Wygląda również na to, że utworzyłeś nieskończoną pętlę, uzyskując dostęp do 'ItemsProcessed' w obrębie samych funkcji' ItemsProcessed'. – Gabe
Dla odniesienia, sztuczka 'EventName (args)' wywołuje sztuczkę stosuje się tylko do * zdarzeń polowych *, gdzie niektóre operacje pośrednio przekształcają się w * pole * (nie zdarzenie) w klasie. Muszę powiedzieć "trochę", ponieważ dokładna lista zmieniła się pomiędzy C# 3 i C# 4. –