![]() |
"Codedesign"
Hi @all,
ich hätte da mal ne Frage. Ist der Code so richtig formatiert?
Delphi-Quellcode:
Es geht mir vor allem um das else. Wo muss das positioniert werden? In Luckies Artikel dazu konnte ich leider kein Beispiel finden! :wink:
if Button1.Enabled=true then
begin DoThis; DoThat; end else begin DoThis2; DoThat2; end; |
Re: "Codedesign"
wie man will, aber ich mach es so wie Du. die styleguides unterscheiden sich aber in diesem punkt oft.
|
Re: "Codedesign"
Egal wie, du könntest auf das "= true" verzichten.
|
Re: "Codedesign"
Ja, da gibt es viele unterschiede.
Ich persönlich schreibe das else aber auch in einer eigenen Zeile.
Delphi-Quellcode:
Das aber auch nur, weil else if für mich untrennbar zusammengehört.
if 1 = 2 then
begin // end else begin // end; {oder auch so: } if 1 = 2 then begin // end else if 2 = 3 then begin // end; |
Re: "Codedesign"
Das ist mir klar! Ich wollte eigentlich false schreiben! :oops:
Eigentlich schreibe ich den Code auch immer anders:
Delphi-Quellcode:
if blabla then
begin dothis; dothat; end else begin dothis2; dothat2; end; |
Re: "Codedesign"
Ouch. In einem Punkt sind sich eigentlich so ziemlich alle Styleguides einig: Genau das
Delphi-Quellcode:
sollte man nicht machen.
if true then
begin // end else // das hier begin // end;
Delphi-Quellcode:
Okay, ich geb zu, das war etwas übertrieben. Aber glaub mir, ich kenne Codestellen das ist das leider genau so, und man wundert sich hinterher, warum denn da zum Teufel der Haltepunkt nie angesprungen wird...
if true then
begin // end else { Weil nämlich einige Leute auf die Idee kommen, und einen riesigen Kommetarblock mitten in eine Kontrollstruktur setzen. Und spätestens nach ein paar Zeilen weiss dann nämlich niemand mehr, das in den nächsten Block nur reingesprungen wird, wenn eine Bedingung 2 Bildschirmseiten weiter oben nicht erfüllt sein darf... } begin // end; |
Re: "Codedesign"
Deswegen fragte ich! Danke für den Hinweis! :zwinker:
|
Re: "Codedesign"
Zitat:
Delphi-Quellcode:
if not blabla then
begin end |
Re: "Codedesign"
Delphi-Quellcode:
Und nun stell Dir das mal vor, wenn Du links noch den Objektinspektor offen hast.
if MeineKlasseHatEinenSprechendenNamen.UndDieseMethodeAuch(UndDieserParameterAuch) = false then
begin // end; Und Du wunderst Dich, wenn der nie in die Bedingung reinläuft obwohl Du dafür explizit gesorgt hast (aber das false rechts ausserhalb Deines Codefensters nicht siehst...). |
Re: "Codedesign"
erbsenzähler :mrgreen:
@mathias edit// weil phoenix wieder drängelt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 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 by Thomas Breitkreuz