Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi "Codedesign" (https://www.delphipraxis.net/26533-codedesign.html)

S2B 24. Jul 2004 21:32


"Codedesign"
 
Hi @all,
ich hätte da mal ne Frage. Ist der Code so richtig formatiert?
Delphi-Quellcode:
  if Button1.Enabled=true then
  begin
    DoThis;
    DoThat;
  end
  else
  begin
    DoThis2;
    DoThat2;
  end;
Es geht mir vor allem um das else. Wo muss das positioniert werden? In Luckies Artikel dazu konnte ich leider kein Beispiel finden! :wink:

bttb930 24. Jul 2004 21:34

Re: "Codedesign"
 
wie man will, aber ich mach es so wie Du. die styleguides unterscheiden sich aber in diesem punkt oft.

MathiasSimmack 24. Jul 2004 21:35

Re: "Codedesign"
 
Egal wie, du könntest auf das "= true" verzichten.

Phoenix 24. Jul 2004 21:37

Re: "Codedesign"
 
Ja, da gibt es viele unterschiede.

Ich persönlich schreibe das else aber auch in einer eigenen Zeile.

Delphi-Quellcode:
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;
Das aber auch nur, weil else if für mich untrennbar zusammengehört.

S2B 24. Jul 2004 21:38

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;

Phoenix 24. Jul 2004 21:43

Re: "Codedesign"
 
Ouch. In einem Punkt sind sich eigentlich so ziemlich alle Styleguides einig: Genau das
Delphi-Quellcode:
if true then
begin
   //
end else // das hier
begin
  //
end;
sollte man nicht machen.


Delphi-Quellcode:
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;
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...

S2B 24. Jul 2004 21:45

Re: "Codedesign"
 
Deswegen fragte ich! Danke für den Hinweis! :zwinker:

MathiasSimmack 24. Jul 2004 21:52

Re: "Codedesign"
 
Zitat:

Zitat von S2B
Das ist mir klar! Ich wollte eigentlich false schreiben! :oops:

Dann aber not:
Delphi-Quellcode:
if not blabla then
begin
end

Phoenix 24. Jul 2004 21:55

Re: "Codedesign"
 
Delphi-Quellcode:
if MeineKlasseHatEinenSprechendenNamen.UndDieseMethodeAuch(UndDieserParameterAuch) = false then
begin
  //
end;
Und nun stell Dir das mal vor, wenn Du links noch den Objektinspektor offen hast.
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...).

kiar 24. Jul 2004 21:55

Re: "Codedesign"
 
erbsenzähler :mrgreen:

@mathias

edit// weil phoenix wieder drängelt


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:14 Uhr.
Seite 1 von 2  1 2      

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