Czasami chcemy mieć pewność, że zdarzenie nie zostanie podpięte dwa razy do tej samej metody. Przyjrzyjmy się jak to zrobić w C#:
private EventHandler _Event; public event EventHandler ExampleEvent { add { if (_Event == null || !_Event.GetInvocationList().Contains(value)) _Event += value; } remove { _Event -= value; } }
Rozwiązaniem jest użycie metody GetInvocationList. Następnie podłączając metody do zdarzenia za pomocą += mamy pewność, że nie będzie duplikatów i metoda nie będzie wywoływana kilkukrotnie.