Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi InfixCaps oder nicht (https://www.delphipraxis.net/143404-infixcaps-oder-nicht.html)

API 15. Nov 2009 11:27


InfixCaps oder nicht
 
Hallo

In welchen Fällen soll ein kleines f bei Klassenmitgliedern verwendet werden?

Also entweder (1)
Delphi-Quellcode:
  TMeineKlasse = class
  private
     fIrgendeinstring: string;
oder (2)
Delphi-Quellcode:
  TMeineKlasse = class
  private
     FIrgendeinstring: string;
Ich sehe in verschiedenen Quelltexten (auch DP) Variante (1). Warum?

API 17. Nov 2009 18:21

Re: InfixCaps oder nicht
 
PUSH...
Wie macht ihr es denn?
Warum wird oft Variante (1) verwendet?
Was ist "richtig"?

wicht 17. Nov 2009 19:38

Re: InfixCaps oder nicht
 
Ich denke, es sollte F sein. Ich glaube ich habe es bis jetzt nie anders gesehen und mache es wohl deshalb selbst auch so.
Diese Frage interessiert mich allerdings auch sehr, darum wird doch sicher auch noch wer anders nach so langer Zeit antworten können :) ?

himitsu 17. Nov 2009 19:53

Re: InfixCaps oder nicht
 
Im Grunde kannst du es auch ganz ohne Präfix machen.

Aber es ist von Vorteil, wenn z.B. mal ein Feld den selben Namen haben sollte, wie das "zugehörige" Property oder eine Methode.

Mir gefällt allerdings der _ viel besser und ich nehme es oftmals für Felder, private Methoden und auch für einzelne "private" und nicht in Klassenen liegende Funktionen/Prozeduren innerhalb einer Unit.

Also bei mir findet man oft den _ als Präfix zur derartigen Kennzeichnung und als Suffix bei Namensproblemen.

Und Funktionsparameter bekommen bei mir in der Regel garkein Präfix.
Zitat:

Zitat von API
Warum wird oft Variante (1) verwendet?

Weil es viele so (nach)machen.
Und ich glaub es steht auch so im fast "offiziellen" Bei Google suchenDelphi-Style-Guide
> http://www.delphi-treff.de/delphi-styleguide/

Zitat:

Zitat von API
Wie macht ihr es denn?

PS: InfixCaps hat aber nix mit dem "F" (Präfix) zu tun, sondern es meint die Schreibweise, also die Groß-/Kleinschreigung und keine Unterschriche
> DAS_IST_EINE_KONSTANTE (wie man es oft in der C und vorallem in WinAPI [MSDN] vorfindet)
> MeineDelphiVariable (ist platzsparender und imho auch lesbarer ... also zusammen und jeder Wort groß angefangen)
> FDasIstEinFeldMeinerKlasse
> AUndHierEinParameterEinerMethode

Dein "fIrgendeinstring" ist schon soein NO-GO, denn das kann man wirklich nicht lesen und genau hier würde ich sagen "Auf jedenfall InfixCaps", also "fIrgendeinString",

wobei hier Viele wohl wirklich das große F nutzen, aber gerade hier gefallen mir die kleinen f besser, da sie sich dann von dem "Großgeschriebenen" Inhalt des Namens abheben, aber das mag Geschmackssache sein ... wie gesagt, ich nehme ja eh was ganz Anderes hierfür, aber ich bin ja auch nicht ganz normal :angel:
Zitat:

Zitat von API
Was ist "richtig"?

ein RICHTIG und FALSCH gibt es hier kaum (abgesehn von ein paar wirklich schrecklichen angewohnheiten), aber bezüglich des F's ... mach es so, wie es dir am Besten gefällt (es sei denn du arbeitest mal in einer Gruppe, bzw. Firma ... da sollten wohl alle Codes möglichst etwa gleich aussehn)

Also im Prinzip kannst'e dich gern an den Delphi-Style-Guide halten
(auch wenn das eigentlich mehr ein Vorschlag ist und kein echter Guide aka Richtlinie, welche man genau einhalten muß)

API 22. Nov 2009 07:17

Re: InfixCaps oder nicht
 
Im Delphi-Style-Guide steht aber
Zitat:

Methodennamen sollten den InfixCaps-Stil verwenden. Beginnen Sie mit einem Großbuchstaben und verwenden Sie für jedes untergeordnete Wort im Namen einen Großbuchstaben

himitsu 22. Nov 2009 09:53

Re: InfixCaps oder nicht
 
Delphi-Quellcode:
TMeineKlasseMyClass = class
  fMeinFeldMyField: string;
  function MeineMethoteMyMethod(aMeinAttributMyAttribute: integer): string;
  MeinPropertyMyProperty: string write fMeinFeldMyField;
und ich mach es eben so
Delphi-Quellcode:
TMeineKlasseMyClass = class
  _MeinFeldMyField: string;
  function MeineMethoteMyMethod(MeinAttributMyAttribute: integer): string;
  MeinPropertyMyProperty: string write _MeinFeldMyField;
und ohne die häßlichen Attributpräfixe gibt es auch keine Namenskonflikte:
Delphi-Quellcode:
TMyClass = class
private
  _Text: string;
  procedure SetText(Text: string);
public
  Text: string write SetText;
end;

procedure TMyClass.SetText(Text: string);
begin
  _Text := Text{attribut};
  Self.Text{property, wenn gleichnamiges attribut existert} := Text{attribut};
end;

API 29. Nov 2009 07:16

Re: InfixCaps oder nicht
 
Zitat:

und ohne die häßlichen Attributpräfixe gibt es auch keine Namenskonflikte:
Delphi-Quellcode:
TMyClass = class
private
  _Text: string;
  procedure SetText(Text: string);
public
  Text: string write SetText;
end;

Mit einem F-Prefix gibt es doch auch keine Namenskonflikte.

Delphi-Quellcode:
TMyClass = class
private
  FText: string;
  procedure SetText(Text: string);
public
  Text: string write SetText;
end;
[/quote]

himitsu 29. Nov 2009 08:16

Re: InfixCaps oder nicht
 
Wenn du öfters Mal Abkürzungen nutzt, dann theoretisch schon.
Und wie gesagt, ich mach es so, andere machen es anders, wieder andere noch ganz anders.
Aber ich finde dieser _Unterstrich fällt eher auf ... es braucht ja nur mal irgendwas anderes mit F bedinngen (Feld, Fill, Field ......) und schon geht ein F-Präfix dazwischen schnell mal unter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:51 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