Delphi idioms – Assign and AssignTo

The Delphi RTL class TPersistent, which is implemented in unit System.Classes, defines two methods: Assign and AssignTo. Relevant parts of this class are shown next:

type  TPersistent = class(TObject)  protected    procedure AssignTo(Dest: TPersistent); virtual;  public    procedure Assign(Source: TPersistent); virtual;  end;procedure TPersistent.Assign(Source: TPersistent);begin  if Source <> nil then Source.AssignTo(Self) else AssignError(nil);end;procedure TPersistent.AssignTo(Dest: TPersistent);begin  Dest.AssignError(Self);end;

Any descendent of the TPersistent class can override any or both of these methods. When you know how to copy data from some type into the object, you override Assign. When you know how ...

Get Hands-On Design Patterns with Delphi now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.