using System.Text; using System.Xml.Linq; namespace Data { public abstract class Define { public string defName; public string label; public string description; public string packID; /// /// 初始化方法,根据传入的 XML 元素 () 进行处理。 /// /// 包含定义信息的 XML 元素。 /// /// 返回一个布尔值: /// - 如果返回 false,表示按照默认方式处理(依次对 XML 进行变量名识别和赋值)。 /// - 如果返回 true,表示使用自定义方式处理,不进行额外的默认处理。 /// /// /// /// 该方法的基类实现会自动识别并处理以下三个变量: /// - defName /// - label /// - description /// /// /// 如果需要覆盖默认行为,可以在派生类中重写此方法,并返回 true /// 以指示框架跳过默认处理逻辑。 /// /// public virtual bool Init(XElement xmlDef) { defName = xmlDef.Element("defName")?.Value; label = xmlDef.Element("label")?.Value; description = xmlDef.Element("description")?.Value; return false; } public override string ToString() { // 定义对齐格式(左对齐,固定宽度) const int labelWidth = -15; // 标签左对齐,占15字符 const int valueWidth = -30; // 值左对齐,占30字符 var sb = new StringBuilder(); sb.AppendLine($"{"DefName:",labelWidth}{defName,valueWidth}"); sb.AppendLine($"{"Label:",labelWidth}{label,valueWidth}"); sb.AppendLine($"{"Description:",labelWidth}{description,valueWidth}"); sb.AppendLine($"{"PackID:",labelWidth}{packID,valueWidth}"); return sb.ToString(); } } }