Laden...

Was für eine Naming-Convention für Eigenschaften verwenden

Erstellt von mathias_f vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.131 Views
M
mathias_f Themenstarter:in
12 Beiträge seit 2010
vor 13 Jahren
Was für eine Naming-Convention für Eigenschaften verwenden

tagchen leute

mein erstes posting in die runde wink

mache mir gerade gedanken zum naming von Eigenschaften.

a) m_dLengthEdgeA
b) m_dEdgeALength
c) LengthEdgeA
d) EdgeALength

-> Rect.LengthEdgeA

1: verwendet ihr noch hungarian (system) notation?
2: mir gefällt irgendwie a) bzw c) denn es ist vorangestellt WAS es ist: eine Länge, zudem sind bei intellisense alle Lengths zusammen, falls ich noch eine LengthIrgendwas habe.. bei IrgendwasLength und EdgeLength sind die in der alphabetischen Liste getrennt

Was denkt ihr?

g

2.891 Beiträge seit 2004
vor 13 Jahren

Siehe:

Entwurfsrichtlinien zum Entwickeln von Klassenbibliotheken
Richtlinien für Namen
(Enthält Richtlinien für die Benennung von Typen und Membern in Klassenbibliotheken.)
* Konventionen für die Groß-/Kleinschreibung (Beschreibt die unterschiedlichen Schreibweisen und wann sie verwendet werden sollten.)

M
mathias_f Themenstarter:in
12 Beiträge seit 2010
vor 13 Jahren

Danke für die Links!

Wählen Sie leicht lesbare Bezeichnernamen aus. Beispielsweise ist eine Eigenschaft mit dem Namen HorizontalAlignment im Englischen besser lesbar als AlignmentHorizontal.

hier möcht ich zur Diskussion anregen:

Wie sehen andere das?
Wenn ich noch AlignmentVertical hab ists geordneter und klingt Objekt bezogen, beinahe wie Alignment.Horizontal = true;

Wäre es bei 2 oder mehr Eigenschaften gleichen Typs (im Sinne Simonyi) (Länge oder Anzahl, etc) also besser gleich zu gruppieren und einen struct / class mit allen Alignments und Lengths zu machen?

Object.Alignments.Horizontal
Object.Alignments.Vertical

g

5.742 Beiträge seit 2007
vor 13 Jahren

Wenn ich noch AlignmentVertical hab ists geordneter und klingt Objekt bezogen, beinahe wie Alignment.Horizontal = true;

Geordnet vielleicht schon - aber eben nicht wirklich lesbarar 😉

Wäre es bei 2 oder mehr Eigenschaften gleichen Typs (im Sinne Simonyi) (Länge oder Anzahl, etc) also besser gleich zu gruppieren und einen struct / class mit allen Alignments und Lengths zu machen?

Ja - in manchen Fällen macht das durchaus Sinn.
Siehe z.B. Control.Margin.

Zu deinem Rechteck: Warum nicht Width und Height wie in der FCL auch?
"LengthEdgeA" hört sich IMHO doch sehr merkwürdig an...

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Wenn ich noch AlignmentVertical hab ists geordneter und klingt Objekt bezogen, beinahe wie Alignment.Horizontal = true;

Wie Du die Dinger in Code anordnest ist ja Deine Sache. Wenn's um Intellisense geht, erleichtert das ja höchstens die Suche, wenn man nicht weiss welchen Member man benötigt. Dafür gibt's die Doku.

Beim Intellisense finde ich es persönlich besser, wenn ich nur "Hor" oder "Ver" tippen muss und bin direkt an Ort und Stelle, als daß ich "Ali" tippe und dann mit Cursortasten oder Maus auswähle.

Grundsätzlich sollte aber die Lesbarkeit im Vordergrund stehen.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

2.891 Beiträge seit 2004
vor 13 Jahren

Wie Du die Dinger in Code anordnest ist ja Deine Sache. Wenn's um Intellisense geht, erleichtert das ja höchstens die Suche, wenn man nicht weiss welchen Member man benötigt.

Zumal im VS 2010 die Intellisense-Vorschläge so sind, dass beim Tippen nur noch die angezeigt werden, die das bisher getippte enthalten(!). D.h. man könnte "Align" eintippen und bekommt "HorizontalAlignment" und "VerticalAlignment" aufgelistet.

M
mathias_f Themenstarter:in
12 Beiträge seit 2010
vor 13 Jahren

👍
Danke für die Antworten und Hinweise (VS2010)

hab mich nun für die leserlichere Variante entschieden und mache bei Bedarf eine Klasse mit Eigenschaften (vgl. Control.Margin. ..).