Naja, so richtig nicht. Man kann es in der Laufzeit etwas optimieren, da der "as"-Operator nochmals eine "is"-Prüfung macht. So wie du es machst, bist du zum Zeitpunkts des Casts ja schon sicher die richtige Klasse in der Hand zu haben -> direkt casten:
Delphi-Quellcode:
if Class is TBaseClass then
TBaseClass(Class).Tuwas
else if Class is TDerivedClass then
TDerivedClass(Class).Tuwas;
Ich hab mir, wenn ich sehr viel so zugreifen musste, immer für jeden Typ eine lokale Variable angelegt, und dieser dann das gefundene zugewiesen. Dann kann man mit der ja weiter machen. Für so kurze Dinger wie oben gibt es
imho keinen komfortableren Weg. (Wäre aber auch daran interessiert
)
Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel