FlagDecorator.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace SAGA.DotNetUtils.Data
  7. {
  8. /// <summary>
  9. /// 标记装饰类
  10. /// </summary>
  11. /// <typeparam name="F"></typeparam>
  12. /// <typeparam name="D">被装饰类</typeparam>
  13. public class FlagDecorator<F, D>
  14. {
  15. public FlagDecorator()
  16. { }
  17. public FlagDecorator(F f, D d)
  18. {
  19. Flag = f;
  20. Instance = d;
  21. }
  22. public FlagDecorator(D d)
  23. {
  24. Instance = d;
  25. }
  26. public F Flag { get; set; }
  27. public D Instance { get; set; }
  28. /// <summary>
  29. /// 是否处理过
  30. /// </summary>
  31. public bool Handled { get; set; }
  32. }
  33. /// <summary>
  34. /// 布尔标记
  35. /// </summary>
  36. /// <typeparam name="D">被装饰类</typeparam>
  37. public class BoolFlag<D> : FlagDecorator<bool, D>
  38. {
  39. public BoolFlag()
  40. { }
  41. public BoolFlag(bool f, D d) : base(f, d)
  42. {
  43. }
  44. public BoolFlag(D d) : base(d)
  45. {
  46. }
  47. }
  48. /// <summary>
  49. /// 字符串标记
  50. /// </summary>
  51. /// <typeparam name="D">被装饰类</typeparam>
  52. public class StringFlag<D> : FlagDecorator<string, D>
  53. {
  54. public StringFlag()
  55. { }
  56. public StringFlag(string f, D d) : base(f, d)
  57. {
  58. }
  59. public StringFlag(D d) : base(d)
  60. {
  61. }
  62. }
  63. }