2010-03-24 21 views
2

Je veux transmettre des références constantes aux fonctions dans Delphi, donc je suis sûr que l'objet référencé ne changera pas et pour gagner du temps et de la mémoire. Donc, je veux déclarer une fonction commeConstantes Delphi et références

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

mais ce n'est pas autorisé. Je pensais que les valeurs constantes seraient automatiquement envoyées comme références. Cependant j'ai découvert que ce n'est pas le cas (obtenir l'adresse d'un objet avant de l'envoyer à la fonction me donne $ 12F50C et l'adresse du même objet dans la fonction est $ 12F564)

Que puis-je faire pour envoyer des références constantes?

Répondre

1

Function Foo(Const Value:Bar):Boolean passe la valeur de la manière "la plus efficace", pour les objets volumineux c'est habituellement par référence mais les objets plus petits ont tendance à être passés par valeur.

The answers to this question go into more detail...

Notez que le passage d'un paramètre marqué comme const ne signifie pas qu'il ne peut pas être changé, cela signifie simplement que le compilateur va changer ne vous laissera pas directement lui.

+0

Merci, c'est très utile à savoir. – Sambatyon