Ihr habt euch aber wirklich.
Nur weil ich mit einem Prozeduraufruf eine Endlosrekursion produzieren kann, heisst das doch noch nicht, das ich gänzlich auf Prozeduren verzichte
Konstrukte, egal welcher Art, sollten da eingesetzt werden, wo es passt. Bei einer Zuweisung einzelner Eigenschaften zweier Instanzen ein und der selben Klasse, würde nur dann mit 'WITH' arbeiten, wenn ich den Rest der Coder-Gemeinschaft nachhaltig verärgern will.
Natürlich schreibt man dann:
Delphi-Quellcode:
Procedure TMyObject.Assign (aSrc : TMyObject);
Begin
Self.Foo := aSrc.Foo;
Self.Bar := aSrc.Bar;
...
End;
Wenn ich aber auf Jim's Körperteile eingehen will, wäre ein WITH durchaus adäquat. Auch die Verwendung bei der kurzzeitigen Verwendung einer Klasseninstanz ist das
imho die richtige Wahl: Die Instanz ist so kurzlebig, das sie noch nicht mal eine eigene lokale Variable verdient. Das
oi
Wie gesagt: Man *kann* damit furchtbar unleserlichen Müll fabrizieren. Aber das geht mit Vererbung, Methodenaufrufen und
Programmierung allgemein auch sehr einfach.