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

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

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

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

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


person Sambatyon    schedule 24.03.2010    source источник


Ответы (1)


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

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

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

person James Barrass    schedule 24.03.2010
comment
Спасибо, это очень полезно знать. - person Sambatyon; 24.03.2010