You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
4.7 KiB

4 years ago
4 years ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. namespace Apewer
  5. {
  6. // /// <summary>封装一个方法,该方法不具有参数且不返回值。</summary>
  7. // public delegate void Action();
  8. // /// <summary>表示当事件提供数据时将处理该事件的方法。</summary>
  9. // /// <typeparam name="TEventArgs">事件生成的事件数据的类型。</typeparam>
  10. // /// <param name="sender">事件源。</param>
  11. // /// <param name="e">包含事件数据的对象。</param>
  12. // public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);
  13. // /// <summary>封装一个方法,该方法具有一个参数,且返回由 TResult 参数指定的类型的值。</summary>
  14. // /// <typeparam name="T">此委托封装的方法的参数类型。</typeparam>
  15. // /// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
  16. // /// <param name="arg">此委托封装的方法的参数。</param>
  17. // /// <returns>此委托封装的方法的返回值。</returns>
  18. // public delegate TResult Func<in T, out TResult>(T arg);
  19. /// <summary></summary>
  20. public delegate void Event(object sender);
  21. /// <summary></summary>
  22. public delegate void Event<T>(object sender, T argument);
  23. /// <summary></summary>
  24. public delegate void Event<T1, T2>(object sender, T1 arg1, T2 arg2);
  25. /// <summary></summary>
  26. public delegate void Event<T1, T2, T3>(object sender, T1 arg1, T2 arg2, T3 arg3);
  27. /// <summary></summary>
  28. public delegate void Event<T1, T2, T3, T4>(object sender, T1 arg1, T2 arg2, T3 arg3, T4 arg4);
  29. /// <summary></summary>
  30. public delegate void Event<T1, T2, T3, T4, T5>(object sender, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
  31. /// <summary></summary>
  32. public delegate void Event<T1, T2, T3, T4, T5, T6>(object sender, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
  33. /// <summary>数组回调。</summary>
  34. public delegate T ArrayCallback<T>(object sender, params T[] arguments);
  35. /// <summary>可枚举回调。</summary>
  36. public delegate T EnumerableCallback<T>(object sender, IEnumerable<T> arguments);
  37. /// <summary>列表回调。</summary>
  38. public delegate T ListCallback<T>(object sender, List<T> arguments);
  39. ///// <summary></summary>
  40. //public delegate void EventHandler<T>(object sender, T values) where T : Exception;
  41. /// <summary>为 ZIP 提取文件提供输出流。参数 Size 为未压缩的大小。</summary>
  42. public delegate Stream ZipOnFile(string name, long size, DateTime modified);
  43. /// <summary>处理 ZIP 提取的目录。</summary>
  44. public delegate void ZipOnDirectory(string name, DateTime modified);
  45. #if NET20
  46. /// <summary>封装一个方法,该方法不具有参数,且返回由 TResult 参数指定的类型的值。</summary>
  47. /// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
  48. /// <returns>此委托封装的方法的返回值。</returns>
  49. public delegate TResult Func<out TResult>();
  50. /// <summary>封装一个方法,该方法具有一个参数,且返回由 TResult 参数指定的类型的值。</summary>
  51. /// <typeparam name="T">此委托封装的方法的参数类型。</typeparam>
  52. /// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
  53. /// <param name="arg">此委托封装的方法的参数。</param>
  54. /// <returns>此委托封装的方法的返回值。</returns>
  55. public delegate TResult Func<in T, out TResult>(T arg);
  56. /// <summary>封装一个方法,该方法具有两个参数,并返回由 TResult 参数指定的类型的值。</summary>
  57. /// <typeparam name="T1">此委托封装的方法的第一个参数的类型。</typeparam>
  58. /// <typeparam name="T2">此委托封装的方法的第二个参数的类型。</typeparam>
  59. /// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
  60. /// <param name="arg1">此委托封装的方法的第一个参数。</param>
  61. /// <param name="arg2">此委托封装的方法的第二个参数。</param>
  62. /// <returns>此委托封装的方法的返回值。</returns>
  63. public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);
  64. /// <summary>封装一个方法,该方法不具有参数且不返回值。</summary>
  65. public delegate void Action();
  66. /// <summary>表示当事件提供数据时将处理该事件的方法。</summary>
  67. /// <typeparam name="TEventArgs">事件生成的事件数据的类型。</typeparam>
  68. /// <param name="sender">事件源。</param>
  69. /// <param name="e">包含事件数据的对象。</param>
  70. public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);
  71. #endif
  72. }