Warum sollte ich vermeiden, ClassType im Anwendungscode zu verwenden?

8

Die Delphi Online-Dokumentation sagt

  

"Vermeiden Sie die Verwendung von ClassType im Anwendungscode".

Es gibt jedoch viele Orte, wo ein Klassentyp benötigt wird. Wenn beispielsweise ein Programm die Klasse System.Contnrs. TClassList verwendet, benötige ich den ClassType eines Objekts, um es im Parameter von IndexOf () zu übergeben.

Was ist der Grund für diese Empfehlung in der ClassType-Dokumentation?

    
mjn 03.06.2013, 11:50
quelle

1 Antwort

17

Der offensichtlichste Grund, warum dieser Rat gegeben wird, ist für Programmierer, die einen solchen Code schreiben wollen:

%Vor%

Diese Bedingung wird nur dann als wahr ausgewertet, wenn die Klasse des Objekts TStringList ist. Sehr häufig möchten Sie jedoch, dass der bedingte Code für TStringList und alle untergeordneten Elemente ausgeführt wird. In diesem Fall schreiben Sie:

%Vor%

Wenn Sie wissen wollen, welche Klasse eine Instanz ist, dann sollten Sie ClassType verwenden. Wenn Sie eine Liste von Klassen in einer TClassList -Instanz pflegen, können Sie ClassType verwenden, um die Meta-Klasse einer Instanz zu erhalten.

    
David Heffernan 03.06.2013, 11:53
quelle

Tags und Links