Dynamische Methoden

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Dispatch-Methoden


Dynamische Methoden sind virtuelle Methoden, die sich durch einen etwas anderen Verteilungsmechanismus auszeichnen. Da dynamische Methoden keinen Eintrag in der VMT des Objekts haben, tragen sie zur Reduzierung des Speicherbedarfs bei. Das Verteilen dynamischer Methoden dauert jedoch etwas länger als das Verteilen gewöhnlicher virtueller Methoden. Wenn eine Methode häufig aufgerufen wird oder ihre Ausführung zu lange dauert, sollten Sie sie als virtuelle und nicht als dynamische Methode deklarieren.

Objekte müssen die Adressen ihrer dynamischen Methoden speichern. Dynamische Methoden verfügen aber über keinen Eintrag in der virtuellen Methodentabelle (VMT). Stattdessen werden sie separat aufgeführt. Die Liste der dynamischen Methoden enthält nur Einträge für Methoden, die von einer bestimmten Klasse eingeführt oder überschrieben wurden. (Die VMT umfasst im Gegensatz dazu alle virtuellen Methoden des Objekts, d.h. die geerbten ebenso wie die neu eingeführten.) Geerbte dynamische Methoden werden verteilt, indem die dynamische Methodenliste des Vorfahren durchsucht wird (in der Vererbungshierarchie von unten nach oben).

Um eine Methode als dynamische Methode zu definieren, fügen Sie am Ende der Methodendeklaration die Direktive dynamic hinzu.