2009-08-20 16 views
1

Für diejenigen von Ihnen, die das Unterstrichpräfix für private Klassenmitglieder in C# verwenden (d. H. Private int _count;), was verwenden Sie für private Konstanten? Ich denke folgendes, bin aber gespannt was andere machen.Was sollte der Standard für private Klassenkonstanten in C# sein?

private const int _MaxCount; 
+0

vor bei http://stackoverflow.com/questions/242534/c-naming-convention-for-constants gestellten Aber ich sehe von Martins Antwort, die er schon da gewesen ist. ;) – Xiaofu

+0

Eigentlich bin ich nicht dort gewesen - sonst hätte ich TheAnswer als Name der Konstante benutzt ;-) – M4N

+0

Guter Punkt, also entschuldige ich mich. Wenn mein Gehirn nicht so weh tat, hätte ich erwartet, dass 42 immer die Antwort ist, wenn Sie eine Zufallszahl brauchen.Aber was war die Frage? – Xiaofu

Antwort

5

Nun, privat ist privat, also wähle die Konvention, die dir am besten gefällt. Ich persönlich benutze PascalCasing, z:

private const int SomeConstant = 42; 

Dies ist, was MSDN has to say about it:

Die Benennungsrichtlinien für Felder gelten für statische öffentlichen und geschützten Bereichen. Sie sollten keine öffentlichen oder geschützten Instanzfelder definieren:

  • Verwenden Sie Pascal-Gehäuse in Feldnamen.
  • Machen Sie Namensfelder mit Substantiven oder Nominalphrasen.
  • Verwenden Sie kein Präfix für Feldnamen. Verwenden Sie z. B. nicht g_ oder s_, um zwischen statischen und nicht statischen Feldern zu unterscheiden.
+0

Es heißt: Verwenden Sie 'camelCase' für private Felder (Konstanten sind auch technische Felder): http://msdn.microsoft.com/en-us/library/x2dbyw72(VS.71).aspx –

+1

Das Problem, das ich damit habe ist, dass Pascal-Gehäuse auch für Eigenschaften verwendet wird. Ich möchte eine Variable betrachten und wissen, dass es eine Variable und keine Eigenschaft ist. – bsh152s

2

C# und .NET-Benennungskonventionen entmutigen alle Präfixe (z.B. C, i, s_, g_, m_, _) mit Ausnahme von "I" für Schnittstellennamen und "T" für den Typ-Parameter.

+1

Und ein T-Präfix für generische Typen? – Charlie

+0

Haben Sie einen Hinweis darauf? Soweit ich mich erinnere, decken diese Konventionen nur die öffentlichen Teile ab, aber nicht privat. – M4N

+0

Charlie: Ja. Das habe ich vermisst. Danke, dass du es aufgezeigt hast. Eigentlich nicht die Typen selbst. T für Typparameter. –

0

Die Benennungsrichtlinien sind hier verfügbar:
http://msdn.microsoft.com/en-us/library/ms229002.aspx

Wie gesagt Mehrdad, prefixes are specifically discouraged.

Das heißt, sie sind nur Richtlinien als harte Regeln. Persönlich verwende ich ein '_' Präfix, aber nur für private Mitglieder , die direkt den Backing Store für eine öffentliche Eigenschaft, bereitstellen und dann werden die Namen sonst genau übereinstimmen.

Es gibt keine spezifische Anleitung für Konstanten, so dass die Capitalization Conventions Regeln wahrscheinlich noch passen.

2

Ich verwende:

private const int MAX_COUNT = 42; 

Ich benutze keine PascalCasing weil die Objekte meiner Standard ist.
Ich verwende nicht camelCasing, weil das mein Standard für lokale Variablen ist.
Ich benutze _camelCasing nicht, weil das mein Standard für private Felder ist.
Ich benutze _PascalCasing nicht, weil IMO es von _camelCasing unterscheiden kann.

Verwandte Themen