【发布时间】:2020-11-03 19:40:20
【问题描述】:
我有一堂课,看起来像这样:
TCharacter = class (TData)
Images: array of T_Variable_Image;
Description: String;
Place: TPlace;
Dialogues: TSequenceData;
Abilities: array of TAbility;
Inventory: TContainer;
Journal: TJournal;
SideName: String;
Side: Integer;
Status: String;
Disabled: Boolean;
如您所见,它的一半字段是其他类或记录,其中许多具有类似的复杂结构。 TCharacter 继承自 TData,而后者又继承自 TPersistent - 我认为,它的 Assign 方法将帮助我轻松地将 TCharacter 的实例克隆到另一个实例中。唉,这并不容易。所以我的问题是 - 对我来说,在不丢失任何数据或创建指针的情况下克隆实例的最佳方法是什么,它会随着原始实例一起改变。
【问题讨论】:
-
使用
Assign确实是正确的方法。但是你必须在你创建的每个新类中覆盖Assign。 -
仅供参考,Delphi RTL 已经有一个
TCharacter类,因此您应该考虑将您的类重命名为其他更独特的名称。