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.

82 lines
4.1 KiB

  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, object argument);
  21. /// <summary></summary>
  22. public delegate void Event<T>(object sender, T argument);
  23. /// <summary>数组回调。</summary>
  24. public delegate T ArrayCallback<T>(object sender, params T[] arguments);
  25. /// <summary>可枚举回调。</summary>
  26. public delegate T EnumerableCallback<T>(object sender, IEnumerable<T> arguments);
  27. /// <summary>列表回调。</summary>
  28. public delegate T ListCallback<T>(object sender, List<T> arguments);
  29. ///// <summary></summary>
  30. //public delegate void EventHandler<T>(object sender, T values) where T : Exception;
  31. /// <summary>为 ZIP 提取文件提供输出流。参数 Size 为未压缩的大小。</summary>
  32. public delegate Stream ZipOnFile(string name, long size, DateTime modified);
  33. /// <summary>处理 ZIP 提取的目录。</summary>
  34. public delegate void ZipOnDirectory(string name, DateTime modified);
  35. #if NET20
  36. /// <summary>封装一个方法,该方法不具有参数,且返回由 TResult 参数指定的类型的值。</summary>
  37. /// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
  38. /// <returns>此委托封装的方法的返回值。</returns>
  39. public delegate TResult Func<out TResult>();
  40. /// <summary>封装一个方法,该方法具有一个参数,且返回由 TResult 参数指定的类型的值。</summary>
  41. /// <typeparam name="T">此委托封装的方法的参数类型。</typeparam>
  42. /// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
  43. /// <param name="arg">此委托封装的方法的参数。</param>
  44. /// <returns>此委托封装的方法的返回值。</returns>
  45. public delegate TResult Func<in T, out TResult>(T arg);
  46. /// <summary>封装一个方法,该方法具有两个参数,并返回由 TResult 参数指定的类型的值。</summary>
  47. /// <typeparam name="T1">此委托封装的方法的第一个参数的类型。</typeparam>
  48. /// <typeparam name="T2">此委托封装的方法的第二个参数的类型。</typeparam>
  49. /// <typeparam name="TResult">此委托封装的方法的返回值类型。</typeparam>
  50. /// <param name="arg1">此委托封装的方法的第一个参数。</param>
  51. /// <param name="arg2">此委托封装的方法的第二个参数。</param>
  52. /// <returns>此委托封装的方法的返回值。</returns>
  53. public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);
  54. /// <summary>封装一个方法,该方法不具有参数且不返回值。</summary>
  55. public delegate void Action();
  56. /// <summary>表示当事件提供数据时将处理该事件的方法。</summary>
  57. /// <typeparam name="TEventArgs">事件生成的事件数据的类型。</typeparam>
  58. /// <param name="sender">事件源。</param>
  59. /// <param name="e">包含事件数据的对象。</param>
  60. public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);
  61. #endif
  62. }