[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | Reference for unit 'Classes' (#rtl)

# TPersistent.Assign

Assign the contents of one class to another.

## Declaration

Source position: classesh.inc line 439

`public procedure TPersistent.Assign(`
`Source: TPersistent`
`); virtual;`

## Description

Assign copies the contents of Source to Self, if the classes of the destination and source classes are compatible.

The TPersistent implementation of Assign does nothing but calling the AssignTo method of source. This means that if the destination class does not know how to assign the contents of the source class, the source class instance is asked to assign itself to the destination class. This means that it is necessary to implement only one of the two methods so that two classes can be assigned to one another.

Remark: | In general, a statement of the form
    Destination:=Source;
(where Destination and Source are classes) does not achieve the same as a statement of the form
    Destination.Assign(Source);
After the former statement, both Source and Destination will point to the same object. The latter statement will copy the contents of the Source class to the Destination class.

## See also

AssignTo |  | Generic assignment function.

Documentation generated on: May 14 2021