2025-02-07 16:04:12 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
2025-03-24 13:16:51 +08:00
|
|
|
|
namespace AlicizaX
|
2025-02-07 16:04:12 +08:00
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 变量。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <typeparam name="T">变量类型。</typeparam>
|
|
|
|
|
public abstract class Variable<T> : Variable
|
|
|
|
|
{
|
|
|
|
|
private T m_Value;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 初始化变量的新实例。
|
|
|
|
|
/// </summary>
|
|
|
|
|
public Variable()
|
|
|
|
|
{
|
|
|
|
|
m_Value = default(T);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取变量类型。
|
|
|
|
|
/// </summary>
|
|
|
|
|
public override Type Type
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return typeof(T);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置变量值。
|
|
|
|
|
/// </summary>
|
|
|
|
|
public T Value
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return m_Value;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
m_Value = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取变量值。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>变量值。</returns>
|
|
|
|
|
public override object GetValue()
|
|
|
|
|
{
|
|
|
|
|
return m_Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 设置变量值。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="value">变量值。</param>
|
|
|
|
|
public override void SetValue(object value)
|
|
|
|
|
{
|
|
|
|
|
m_Value = (T)value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 清理变量值。
|
|
|
|
|
/// </summary>
|
|
|
|
|
public override void Clear()
|
|
|
|
|
{
|
|
|
|
|
m_Value = default(T);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取变量字符串。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>变量字符串。</returns>
|
|
|
|
|
public override string ToString()
|
|
|
|
|
{
|
|
|
|
|
return (m_Value != null) ? m_Value.ToString() : "<Null>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|