Zitat von
Die Muhkuh:
... das with do Konstrukt zu umzuschreiben...
Das With-Statement ist ja schon ziemlich kritisch zu betrachten, da es einige Unsicherheit bringt, was eigentlich gemeint ist.
Auch bekannt als das "Goto der
OOP".
Delphi-Quellcode:
// Beispiel
procedure TForm1.Test;
begin
with Foo do
Caption := 'Test';
// auf welche Caption wird hier zugewiesen, die von Foo oder die von TForm1 ??
// tja, kommt drauf an, ob Foo.Caption existiert
end;
Wenn man das With-Statement mit zwei Ausdrücken einsetzt, dann multiplizieren sich diese Unsicherheiten.
Bei drei Ausdrücken ist jeder Programmierer überfordert.
Hier die goldenen Regeln aus langjähriger Erfahrung:
* grundsätzlich das With-Statement nur sehr sparsam verwenden
* With nicht verwenden, wenn Unsicherheit über den Scope besteht
* niemals With-Statements schachteln
* niemals With in Verbindung mit zwei oder mehr Ausdrücken verwenden (sieht cool aus, bringt aber nur Verwirrung)