Was ist an dem Beispiel von Uwe so unverständlich?
Nochmal, bei der Verwendung von
with
in einer Methode kann man eben nicht sicher sagen, worauf sich dort der Zugriff bezieht. Für den
Moment mag das klar sein, aber wie sieht es in der Zukunft aus? Und wir sprechen hier nicht nur von den Klassen, die von Delphi selber kommen, sondern auch - oder gerade da - bei den Klassen, die man selber schreibt. Die sind doch nicht in Stein gemeißelt und können sich ändern.
Wenn ich jetzt bei jeder Änderung (neue Eigenschaft, Methode) immer den gesamten Code im Blick haben muss, ob da nicht irgendwo ein
with
verwendet wird und der Code auf einmal völlig anders reagiert. Die Anwendung kompiliert aber liefert nur Grütze. Jetzt kann man anfangen und alle Stellen heraussuchen, wo so ein
with
verwendet wurde, und sich
jeden Code genau anschauen muss, um den korrekten Bezug wieder zu bekommen.
Spätestens nach dieser Erfahrung erklärt man
with
für böse und droht mit Teeren und Federn wenn irgendwer diesen Unfug wieder in den Code hineinbringt.
Ich vermisse das
with
nicht und brauche da auch keine Erweiterung.
Delphi-Quellcode:
var
F:TFoo;
begin
...
F := Feld[i+7*j].x[k];
F.a:=F.b+F.c;
end;