GenericVariable.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using System;
  8. namespace GameFramework
  9. {
  10. /// <summary>
  11. /// 变量。
  12. /// </summary>
  13. /// <typeparam name="T">变量类型。</typeparam>
  14. public abstract class Variable<T> : Variable
  15. {
  16. private T m_Value;
  17. /// <summary>
  18. /// 初始化变量的新实例。
  19. /// </summary>
  20. public Variable()
  21. {
  22. m_Value = default(T);
  23. }
  24. /// <summary>
  25. /// 获取变量类型。
  26. /// </summary>
  27. public override Type Type
  28. {
  29. get
  30. {
  31. return typeof(T);
  32. }
  33. }
  34. /// <summary>
  35. /// 获取或设置变量值。
  36. /// </summary>
  37. public T Value
  38. {
  39. get
  40. {
  41. return m_Value;
  42. }
  43. set
  44. {
  45. m_Value = value;
  46. }
  47. }
  48. /// <summary>
  49. /// 获取变量值。
  50. /// </summary>
  51. /// <returns>变量值。</returns>
  52. public override object GetValue()
  53. {
  54. return m_Value;
  55. }
  56. /// <summary>
  57. /// 设置变量值。
  58. /// </summary>
  59. /// <param name="value">变量值。</param>
  60. public override void SetValue(object value)
  61. {
  62. m_Value = (T)value;
  63. }
  64. /// <summary>
  65. /// 清理变量值。
  66. /// </summary>
  67. public override void Clear()
  68. {
  69. m_Value = default(T);
  70. }
  71. /// <summary>
  72. /// 获取变量字符串。
  73. /// </summary>
  74. /// <returns>变量字符串。</returns>
  75. public override string ToString()
  76. {
  77. return (m_Value != null) ? m_Value.ToString() : "<Null>";
  78. }
  79. }
  80. }