GenericEventArgs.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System;
  2. namespace Wayne.Lib
  3. {
  4. /// <summary>
  5. /// A generic event args holding an argument of some type.
  6. /// </summary>
  7. /// <typeparam name="T">The event argument.</typeparam>
  8. public class EventArgs<T> : EventArgs
  9. {
  10. #region Fields
  11. private T argument;
  12. #endregion
  13. #region Construction
  14. /// <summary>
  15. /// Construction.
  16. /// </summary>
  17. /// <param name="argument">The event argument.</param>
  18. public EventArgs(T argument)
  19. {
  20. this.argument = argument;
  21. }
  22. #endregion
  23. #region Properties
  24. /// <summary>
  25. /// The event argument.
  26. /// </summary>
  27. public T Argument
  28. {
  29. get { return argument; }
  30. }
  31. #endregion
  32. #region Debug methods
  33. /// <summary>
  34. /// Presents the class as a string.
  35. /// </summary>
  36. /// <returns></returns>
  37. public override string ToString()
  38. {
  39. return string.Format(System.Globalization.CultureInfo.InvariantCulture,
  40. "EventArgs<{0}>({1})", argument.GetType().Name, argument);
  41. }
  42. #endregion
  43. }
  44. /// <summary>
  45. /// A generic event args holding an argument of some type.
  46. /// </summary>
  47. /// <typeparam name="TArgument">The event argument.</typeparam>
  48. /// <typeparam name="TSender">The event sender.</typeparam>
  49. public class EventArgs<TSender, TArgument> : EventArgs
  50. {
  51. /// <summary>
  52. /// Construction.
  53. /// </summary>
  54. /// <param name="sender">The sender</param>
  55. /// <param name="argument">The event argument.</param>
  56. public EventArgs(TSender sender, TArgument argument)
  57. {
  58. Sender = sender;
  59. Argument = argument;
  60. }
  61. /// <summary>
  62. /// The event argument.
  63. /// </summary>
  64. public TArgument Argument { get; private set; }
  65. /// <summary>
  66. /// The event sender.
  67. /// </summary>
  68. public TSender Sender { get; private set; }
  69. /// <summary>
  70. /// Presents the class as a string.
  71. /// </summary>
  72. /// <returns></returns>
  73. public override string ToString()
  74. {
  75. return string.Format(System.Globalization.CultureInfo.InvariantCulture,
  76. "EventArgs<{0},{1}>({2}, {3})", Sender.GetType().Name, Argument.GetType().Name, Sender, Argument);
  77. }
  78. }
  79. }