AW: With und Klassenmethoden
Zitat:
|
AW: With und Klassenmethoden
Zitat:
Zitat:
Zitat:
|
AW: With und Klassenmethoden
Zitat:
Code:
Diese Einschränkung ist allerdings zumindest in einer etwas späteren Version sehr bald gefallen. Man konnte im with Block dann auch Variable verändern, die für Berechnung der record Adresse benötigt wurden (sogar ohne dass das das Objekt des With verändert hätte). Beim Bearbeiten von Listen war dann absolut üblich
with x[i] do
begin i:=i+1 ... end;
Code:
while p<>nil do
with p^ do begin ... p:=next; end; Zitat:
Ich finde es schade, dass sich Emba nicht dazu entschliessen kann, durch eine simple Erweiterung der Syntax die Schwachstellen des with zu eliminieren. Tatsächlich trägt with dazu bei, den Code optisch besser zu strukturieren und damit übersichtlich zu machen. Leider in der aktuellen Syntax mit gewissen Risken, die gegenüber dem Vorteil manchmal überwiegen. |
AW: With und Klassenmethoden
Zitat:
With erspart Tiparbeit... With einfach nur nicht für die letzte Ebene nehmen... Beispiel: Gegeben sei ein XML-Node: Balbla.blubblub.foofoo.barbar Dann einfach
Delphi-Quellcode:
nehmen und nicht
With Balbla.blubblub do
begin foofoo.barbar := 'Cool' end;
Delphi-Quellcode:
und schon ist alles prima...
With Balbla.blubblub.foofoo do
begin barbar := 'UnCool' end; |
AW: With und Klassenmethoden
Das wäre vielleicht die Lösung für den Fall den Uwe angesprochen hat (gemeint ist äusserer scope, der dann aber auf den inneren angewandt wird), aber sorgt dann dafür, dass es nun im umgekehrten Fall nicht funktioniert ( Entwickler erweitert den inneren scope, übersieht aber das die Eigenschaft übergeordnet schon existiert). Das Problem könnte man nur lösen, indem man die Möglichkeit schafft, den scope in den Eigenschaften zu spezifizieren ( wie in VB durch den Punkt asl Suffix).
|
AW: With und Klassenmethoden
Mavarik: With zerstört innerhalb seines Gültigkeitsbereichs die Fähigkeit des Debuggers Feldinhalte anzuzeigen. Darum gibt es bei mir kein with. Alles andere ist mir absolut egal. Das geschilderte Verhalten sticht alles aus, und macht damit with für mich zu einem NoGo.
Sherlock |
AW: With und Klassenmethoden
Die Verwendung von
Delphi-Quellcode:
ist deswegen böse, weil es nur unter ganz speziellen Bedingungen halbwegs sicher ist (nur ein Scope -> nicht in einer Methode, ...).
with
Die Verwendung von
Delphi-Quellcode:
ist deswegen böse, weil es nur unter ganz speziellen Bedingungen halbwegs sicher ist (in dem Codeblock kommen gar keine Exceptions, das Programm ist 100% fehlerfrei, ...).
try ... except {nix} end;
Mit überhöhter Geschwindigkeit fahren ist auch böse, weil es auch nur unter ganz speziellen Bedingungen halbwegs sicher ist (abgesperrte Strecke, ...). Das Risiko muss jeder für sich selber abschätzen. Wer kein Bock auf Risiko oder Random Application Developing hat - was macht meine Anwendung denn heute so - oder eben eine Anwendung die ohne erkennbaren Grund nicht mehr das macht, was sie machen soll, der verzichtet einfach auf die Verwendung von
Delphi-Quellcode:
,
with
Delphi-Quellcode:
bzw. ballert nicht mit 120 durch eine Ortschaft.
try ... except {nix} end;
Wenn es dann knallt, dann verbitte ich mir jedes wehleidige Gejammer "Das habe ich nicht gewollt!" - glaube ich sofort, aber billigend in Kauf genommen. Denn zu jedem Risiko gehört auch der richtige Hintern, den man dann in der Hose haben sollte, wenn es knallt. Erfahrungsgemäss ist das Verhältnis zwischen Risikobereitschaft und Hintern eher umgekehrt proportional ;) |
AW: With und Klassenmethoden
Zitat:
Zitat:
Gruß K-H |
AW: With und Klassenmethoden
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz