Delphi константы и ссылки

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

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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам