Delphi константы и ссылки - PullRequest
2 голосов
/ 24 марта 2010

Я хочу передавать постоянные ссылки на функции в delphi, поэтому я уверен, что указанный объект не изменится и сэкономит время и память. Поэтому я хочу объявить функцию, как

function foo(var const Value : Bar) : Boolean;

однако это не разрешено. Я думал, что значения констант будут автоматически отправлены как ссылки. Однако я обнаружил, что это не так (получение адреса объекта до его отправки в функцию дает мне $ 12F50C, а адрес того же объекта внутри функции - $ 12F564)

Что я могу сделать, чтобы отправить постоянные ссылки?

1 Ответ

1 голос
/ 24 марта 2010

Function Foo(Const Value:Bar):Boolean передает значение «наиболее эффективным» способом, для больших объектов это обычно по ссылке, но меньшие объекты, как правило, передаются по значению.

Ответы на этот вопрос более подробно ...

Обратите внимание, что передача параметра, помеченного как const, не означает, что его нельзя изменить, это просто означает, что компилятор не позволит вам изменить его напрямую.

...