Управляемые записи в Delphi
Начиная с Delphi 10.4 есть возможность переопределить методы инициализации и финализации записей. Таким образом можно вмешиваться в управление ресурсами, которое создаётся компилятором.
type TMyRecord = record Value: Integer; class operator Initialize (out Dest: TMyRecord); class operator Finalize(var Dest: TMyRecord); end; ...
class operator TMyRecord.Initialize (out Dest: TMyRecord); begin Dest.Value := 10; Log('created' + IntToHex (Integer(Pointer(@Dest))))); end; class operator TMyRecord.Finalize(var Dest: TMyRecord); begin Log('destroyed' + IntToHex (Integer(Pointer(@Dest))))); end;
Таким образом можно создать методы инициализации полей записи.
Для переопределения доступна и операция присвоения записи:
class operator Assign (var Dest: TMyRecord; const [ref] Src: TMyRecord);
Метки:
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии