+1 Das Stichwort ist denke ich "Zumindest nicht in flachen
with-Strukturen."
Auch da gab es schon öfter Probleme in letzter Zeit...
Es sind eben auch in vordefinierten Datentypen wie TRect Funktionen wie Offset hinzugekommen. Selbst wenn das dann (wie bei der TVirtualStringTree) nur zwei Zeilen im with sind, es hat dann bei XE2 geknallt.
Ok, war jetzt nur Pseudocode aber ich denke man kanns interpretieren. Die kürzeste und lesbarste Version ist für mich die letztere.
Kürzeste ja, lesbarste finde ich absolut nicht. Denn man setzt damit beim Leser des Codes voraus, dass er immer genau weiß welche Eigenschaften das andere Objekt hat und welche nicht. Und man setzt voraus, dass sich das auch in dem anderen Objekt nie ändert, da sonst neu eingeführte Eigenschaften solche der Elternklasse beim Aufruf verdecken können.
Wenn die dann noch den selben Typ haben, kann der Compiler das auch nicht feststellen.
Und das ist genau das gegenteil von guter Lesbarkeit. Denn zu guter Lesbarkeit gehört, dass man immer eindeutig sieht was wozu gehört. Und das ist mit with definitiv nicht der Fall.