Ich denke Const ist nicht nur für die Performance, sondern auch (für mich) so einen Art Flag...
Signalisiert mir Procedure Foo(Const AValue : Integer)
ändert nix an dem was ich Übergebe...
Nö, für den Aufrufer ändert sich doch nichts. Wenn die Methode kein
const
hätte erhält sie lokal auf dem Stack eine Kopie des Parameters, aber was kümmert das den Aufrufer?
Also: Bei
Procedure Foo(Var AValue : integer)
könnte es sein, dass die procedure Foo AValue intern verändert. Um das raus zu bekommen, muss ich mir die Procedure anschauen... Wenn da jedoch
Procedure Foo(Const AValue : Integer)
steht, ist es klar, meine Variable bleibt erhalten... (Halte Dich jetzt nicht am Integer="Welchertyp auch immer" fest) (Abgesehen von Classen-Object-Inhalte die über Methoden verändert werden...)
Warum hat developer X Var geschrieben? Weil er nicht wollte, das die ganze Struktur einmal kopiert werden muss... (Der kannte kein Const) Ich habe selber noch Millionen Zeilen Source-Code mit Var statt Const.