EventPool.Event.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. namespace GameFramework
  8. {
  9. internal sealed partial class EventPool<T> where T : BaseEventArgs
  10. {
  11. /// <summary>
  12. /// 事件结点。
  13. /// </summary>
  14. private sealed class Event : IReference
  15. {
  16. private object m_Sender;
  17. private T m_EventArgs;
  18. public Event()
  19. {
  20. m_Sender = null;
  21. m_EventArgs = null;
  22. }
  23. public object Sender
  24. {
  25. get
  26. {
  27. return m_Sender;
  28. }
  29. }
  30. public T EventArgs
  31. {
  32. get
  33. {
  34. return m_EventArgs;
  35. }
  36. }
  37. public static Event Create(object sender, T e)
  38. {
  39. Event eventNode = ReferencePool.Acquire<Event>();
  40. eventNode.m_Sender = sender;
  41. eventNode.m_EventArgs = e;
  42. return eventNode;
  43. }
  44. public void Clear()
  45. {
  46. m_Sender = null;
  47. m_EventArgs = null;
  48. }
  49. }
  50. }
  51. }