IEvent.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. using System;
  2. namespace ET
  3. {
  4. public interface IEvent
  5. {
  6. void Handle();
  7. void Handle(object a);
  8. void Handle(object a, object b);
  9. void Handle(object a, object b, object c);
  10. }
  11. public abstract class AEvent : IEvent
  12. {
  13. public void Handle()
  14. {
  15. this.Run();
  16. }
  17. public void Handle(object a)
  18. {
  19. throw new NotImplementedException();
  20. }
  21. public void Handle(object a, object b)
  22. {
  23. throw new NotImplementedException();
  24. }
  25. public void Handle(object a, object b, object c)
  26. {
  27. throw new NotImplementedException();
  28. }
  29. public abstract void Run();
  30. }
  31. public abstract class AEvent<A>: IEvent
  32. {
  33. public void Handle()
  34. {
  35. throw new NotImplementedException();
  36. }
  37. public void Handle(object a)
  38. {
  39. this.Run((A)a);
  40. }
  41. public void Handle(object a, object b)
  42. {
  43. throw new NotImplementedException();
  44. }
  45. public void Handle(object a, object b, object c)
  46. {
  47. throw new NotImplementedException();
  48. }
  49. public abstract void Run(A a);
  50. }
  51. public abstract class AEvent<A, B>: IEvent
  52. {
  53. public void Handle()
  54. {
  55. throw new NotImplementedException();
  56. }
  57. public void Handle(object a)
  58. {
  59. throw new NotImplementedException();
  60. }
  61. public void Handle(object a, object b)
  62. {
  63. this.Run((A)a, (B)b);
  64. }
  65. public void Handle(object a, object b, object c)
  66. {
  67. throw new NotImplementedException();
  68. }
  69. public abstract void Run(A a, B b);
  70. }
  71. public abstract class AEvent<A, B, C>: IEvent
  72. {
  73. public void Handle()
  74. {
  75. throw new NotImplementedException();
  76. }
  77. public void Handle(object a)
  78. {
  79. throw new NotImplementedException();
  80. }
  81. public void Handle(object a, object b)
  82. {
  83. throw new NotImplementedException();
  84. }
  85. public void Handle(object a, object b, object c)
  86. {
  87. this.Run((A)a, (B)b, (C)c);
  88. }
  89. public abstract void Run(A a, B b, C c);
  90. }
  91. }