code_junkie

How to ensure an event is only subscribed to once

Nov 12th, 2011
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. if (*not already subscribed*)
  2. {
  3. member.Event += new MemeberClass.Delegate(handler);
  4. }
  5.  
  6. private bool _eventHasSubscribers = false;
  7. private EventHandler<MyDelegateType> _myEvent;
  8.  
  9. public event EventHandler<MyDelegateType> MyEvent
  10. {
  11. add
  12. {
  13. if (_myEvent == null)
  14. {
  15. _myEvent += value;
  16. }
  17. }
  18. remove
  19. {
  20. _myEvent -= value;
  21. }
  22. }
  23.  
  24. if (alreadySubscribedFlag)
  25. {
  26. member.Event += new MemeberClass.Delegate(handler);
  27. }
  28.  
  29. class MemberClass
  30. {
  31. private EventHandler _event;
  32.  
  33. public event EventHandler Event
  34. {
  35. add
  36. {
  37. if( /* handler not already added */ )
  38. {
  39. _event+= value;
  40. }
  41. }
  42. remove
  43. {
  44. _event-= value;
  45. }
  46. }
  47. }
  48.  
  49. myClass.MyEvent -= MyHandler;
  50. myClass.MyEvent += MyHandler;
Add Comment
Please, Sign In to add comment