![]() |
AW: Objekte zur Laufzeit erzeugen
Liste der Anhänge anzeigen (Anzahl: 1)
So dann will ich auch noch mal einen zum Besten (bzgl. der Formatierung) geben.
3 Varianten
Delphi-Quellcode:
und was
procedure Foo1;
begin if Voraussetzung then begin MeinCode1; MeinCode2; end else begin MeinCode2; MeinCode1; end; end; procedure Foo2; begin if Voraussetzung then begin MeinCode1; MeinCode2; end else begin MeinCode2; MeinCode1; end; end; procedure Foo3; begin if Voraussetzung then begin MeinCode1; MeinCode2; end else begin MeinCode2; MeinCode1; end; end; ![]() Anhang 41210 Ja, aus dem Grund nehme ich Variante 3 |
AW: Objekte zur Laufzeit erzeugen
Das versteh ich nicht, guter Sir. Warum Variante 3? Die ist... nicht schön. then in einer eigenen Zeile? Also wirklich.
Sherlock |
AW: Objekte zur Laufzeit erzeugen
Zitat:
Für mich zählt nur die Lesbarkeit und damit ist es für mich einfacher (damit schneller) die Struktur zu erfassen. Sobald die Bedingungen etwas umfangreicher werden (ab einer gewissen Schmerzgrenze lager ich aber Teile in Funktionen aus), dann schreibe ich das sogar so:
Delphi-Quellcode:
Dein Vorschlag wäre ja dann so
if //
Bedingung1 or // Bedingung2 or // Bedingung3 and Bedingung4 // then Foo else Bar;
Delphi-Quellcode:
Und wenn der automatische Zeilenumbruch (Codeformatierung) zuschlägt, dann wird es ganz doof
if Bedingung1 or Bedingung2 or Bedingung3 and Bedingung4 then
Foo else Bar;
Delphi-Quellcode:
Jetzt ist nicht auf einen kurzen Blick erkennbar, was wohin gehört. Bei meiner Variante sehe ich die einzelnen Teile sofort.
if Bedingung1 or Bedingung2 or
Bedingung3 and Bedingung4 then Foo else Bar; Und selbst diese Variante (ohne Zeilenkommentare) ist besser lesbar
Delphi-Quellcode:
if Bedingung1 or Bedingung2 or
Bedingung3 and Bedingung4 then Foo else Bar; |
AW: Objekte zur Laufzeit erzeugen
@Luki206
Nun da greift wer ins Klo. Mit anderen worten, ein Zeiger zeigt in die Botanik und nict mehr auf Speicher der für Deine Anwendung verfügbar ist. @all Heute hab ich da was über Haarspalterei gelesen... Manchmal kommt's darauf an, da ist auch so etwas gut brauchbar:
Delphi-Quellcode:
und ebenso
If bedingung1 then... else
If Bedingung2 then... else If Bedingung3 then... else .. If Bedingung99 then else showessage('Deine Daten sind Schrott');
Delphi-Quellcode:
if (Bedingung1 or
Bedingung2 or (Bedingung3 and Bedingung4)or Bedingung5 then ...... |
AW: Objekte zur Laufzeit erzeugen
Also richtig soll es angeblich so sein:
Delphi-Quellcode:
Persönlich mache ich es heute so (also fast richtig ;) ):
if a = b then
begin a := 1; b := 2; end else begin a := 2; b := 1; end;
Delphi-Quellcode:
Das ist eigentlich Quatsch, denn else gehört in die gleiche Ebene wie if:
if a = b then
begin a := 1; b := 2; end else begin a := 2; b := 1; end;
Delphi-Quellcode:
Früher machte ich es immer so, aber zumindest begin nach then, korrigiere aber inzwischen jeden Code damit:
if a = b then
begin a := 1; b := 2; end else begin a := 2; b := 1; end;
Delphi-Quellcode:
Man spart sich zwar mindestens eine Zeile, muss aber immer erst zwei mal gucken um zu sehen, dass die nächsten zwei Zeilen einen Block bilden. Die Übersichtlichkeit ist nicht so flüssig.
if a = b then begin
a := 1; b := 2; end else begin a := 2; b := 1; end; Furchtbar sind natürlich die ganz coolen Formen der Formatierung:
Delphi-Quellcode:
Das tue ich mir inzwischen fast gar nicht mehr an. Postet es einer so, ignoriere ich die Frage:
if a = b then
begin a := 1; b := 2; end else begin a := 2; b := 1; end;
Delphi-Quellcode:
Da muss ich zu sehr im Kopf den Code entwirren.
if a=b then
begin a:=1; b:=2; end else begin a:=2; b:=1; end; |
AW: Objekte zur Laufzeit erzeugen
Zitat:
![]() |
AW: Objekte zur Laufzeit erzeugen
Wenn ich für alles was ich im Leben sagte einen Quellennachweis liefen müsste...
Ich weiß nicht mehr wo ich es gesehen habe, ich habe es aber paar mal gesehen und es waren in der Regel Seiten von Unis. Auch sahen die Seiten in der Regel schön "klassisch" aus, also HTML pur, wie in den guten alten Zeiten Anfang 90. Womit ich also nicht behaupte, dass das neu ist, muss aber auch nicht alt sein. Ich gucke mal in meinen Lesezeichen ob ich da was finde. Andererseits ergibt das zum Teil einen Sinn.
Delphi-Quellcode:
Else ist ein Teil der If-Anweisung, gehört also in die gleiche Ebene, nicht eingerückt.
if a = b then
... else ... Begin und End bilden einen Block. Somit stellt sich die Frage wohn damit?
Delphi-Quellcode:
Das ist alles eine einzige Anweisung, auch wenn es über vier Zeilen verteilt ist. Woran erkennt man das? Spätestens daran, dass es nur ein abschließendes Semikolon am Ende gibt. Geht also auch so:
if a = b then
a := 1 else b := 2;
Delphi-Quellcode:
Wenn ich nun mehr als eine Zeile benötige, brauche ich einen Block.
if a = b then a := 1 else b := 2;
...
Delphi-Quellcode:
Und nun stellt sich die Frage zu was gehört Begin und End? Ist es ein Teil des Blocks selbst, dann muss man es so schreiben:
if a = b then
begin a := 1; b := 2 end else b := 2;
Delphi-Quellcode:
Oder ist es ein Teil der If-Anweisung, dann die vorherige Variante.
if a = b then
begin a := 1; b := 2 end else b := 2; |
AW: Objekte zur Laufzeit erzeugen
Delphi-Quellcode:
So würde ich es schreiben. Und Behauptungen, die man nicht belegen kann, sind eben nur Behauptungen.
if a = b then
begin a := 1; b := 2; end else b := 2; |
AW: Objekte zur Laufzeit erzeugen
Wenn
Delphi-Quellcode:
ein Teil der
else
Delphi-Quellcode:
-Anweisung ist und deswegen in die gleiche Ebene sollte wie das
if
Delphi-Quellcode:
, dann gilt das auch für
if
Delphi-Quellcode:
.
then
Sag ich doch die ganze Zeit ;) |
AW: Objekte zur Laufzeit erzeugen
Jetzt sind wir aber mittlerweile weit ab vom Thema, oder?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz