Frage

Ich habe Streit mit meinen Kollegen über Pascal Gehäuse (oberes Kamel Fall) vs. niedrige camelcase . Sie werden verwendet für alles von Tabellennamen in SQL-Datenbanken auf Eigentum Namensgebung in C # -Code Kamel Gehäuse zu senken, aber Ich mag Pascal Gehäuse besser, niedrigere Kamel Gehäuse für Variablen und Pascal Gehäuse für Eigenschaften:

string firstName;
public string FirstName {
...
}

Aber sie sind zu benutzten:

string _firstname;
public string firstName {
...
}

Ich versuche, mit ihrem „Standard“ zu halten, so dass der Code gleich aussieht, aber ich einfach nicht mögen.

Ich habe, dass der .NET-Framework diese Konvention zumindest gesehen verwendet und das ist, wie ich versuche, meinen Code zu halten, z.

System.Console.WriteLine("string")

Was tun Sie / bevorzugen und warum? Es tut mir leid, wenn jemand anderes diese Frage gestellt, aber ich gesucht und nichts gefunden.

Update: Ich habe ein Verfahren als Beispiel und nicht eine Eigenschaft gegeben, aber es ist das gleiche. Wie ich im ersten Absatz erwähnte meine Kollegen verwenden, um die Pascal-Konvention für alles (Variablen, Methoden, Tabellennamen, etc.)

War es hilfreich?

Lösung

Ich verwende, was das Framework verwendet, da es die de-facto-Best-Practice ist. Doch solange der Code in Ihrem Unternehmen ist konsequent ihren Stil, dann bist du viel besser dran, um es zu gewöhnen. Wenn jeder Entwickler ihren eigenen Standard hat, dann gibt es keinen Standard überhaupt.

Andere Tipps

Ein Link zum offiziellen Design-Richtlinien rel="nofollow könnte Hilfe. Genauer gesagt, lesen Sie den Abschnitt Kapitalisierung Stile .

In dem großen Plan der Dinge, Pascal vs Kamel spielt keine Rolle, dass viel und du bist wahrscheinlich nicht jemand davon zu überzeugen, über eine vorhandene Codebasis zurück zu gehen nur den Fall von Namen zu ändern. Was ist wirklich wichtig ist, dass Sie innerhalb einer bestimmten Code-Basis konsistent sein sollen.

Ich bin nur glücklich, solange Sie nicht Ungar verwenden.

Sie sollten einen Blick auf das neue Microsoft-Tool haben, StyleCop für C # Quellcode zu überprüfen. Halten Sie auch ein Auge auf FxCop zur Überprüfung zusammengestellt. Net Baugruppen. FxCop konzentriert sich mehr auf die Details, was der Code tut, nicht das Layout, aber es einige Namensregeln öffentlich sichtbare Namen im Zusammenhang muss.

StyleCop definiert einen Codierungsstandard, der jetzt von Microsoft als Industriestandard gefördert wird. Es wird überprüft C # Quellcode gegen den Standard. StyleCop hält sich an Ihre Pascal Stil.

Erste Menschen auf StyleCop (oder einen anderen Standard für diese Angelegenheit) kann hart sein, es ist eine ziemliche Hürde, und StyleCop ist ziemlich erschöpfend. Aber Code zu einem einheitlichen Standard sein sollte -. Und eine persönliche Standard ist besser als keine, Unternehmen Standard ist besser als ein persönlicher und ein Industriestandard ist am besten von allen

Es ist viel einfacher, die Leute zu überzeugen, wenn ein Projekt beginnt - Team gebildet wird, und es gibt keinen vorhandenen Code zu konvertieren. Und Sie können Werkzeuge setzen (FxCop, StyleCop) anstelle den Build zu brechen, wenn der Code nicht Standards entspricht.

Sie sollten den Standard für die Sprache und Framework verwenden - SQL-Code sollte SQL-Standards verwenden, und C # -Code sollte C # Standards verwenden

.

Für öffentliche Schnittstellen sollten Sie mit dem MS .NET Framework Design-Stick Richtlinien:. " Kapitalisierung Konventionen "

Für Nicht-Mitglieder ausgesetzt dann, was Sie und Ihre Kollegen zustimmen können.

I (und mein Team) bevorzugen großen Anfangsbuchstaben für Klassennamen zu reservieren.

Warum? Java-Standards ausbreitende, denke ich.

Aus .NET Framework-Entwicklerhandbuch Kapitalisierung Konventionen , Case-Empfindlichkeit:

  

Die Kapitalisierung Richtlinien existieren   ausschließlich auf Identifikatoren einfacher zu machen,   lesen und erkennen. Das Gehäuse muss nicht sein   als Mittel verwendet, Namen zu vermeiden   Kollisionen zwischen Bibliothekselementen.

     

Gehen Sie nicht davon, dass alle Programmier   Sprachen sind case-sensitive. Sie sind   nicht. Die Namen können nicht von Fall unterscheiden   allein.

Pascal Gehäuse soll für Eigenschaften verwendet werden. Soweit varible Namen gehen, verwenden manche Leute _ und einige poeple verwenden m_ und einige Leute einfach nur alte Kamel Gehäuse verwenden. Ich glaube, dass, solange Sie ae consistant hier, es sollte keine Rolle spielen.

Ich denke, muss man in Kauf genommen, was der Codierungsstandard sagt für Ihren Arbeitsplatz, so sehr persönlich Sie es nicht mögen. Vielleicht einen Tag in der Zukunft, die Sie in der Lage, Ihre eigenen Coding-Standards zu diktieren.

Ich persönlich mag Datenbanken Namen der Form „fish_name“ zu verwenden, „tank_id“, etc für Tabellen und Felder, während der Code-Äquivalent des Datenbankmodell wäre „fishName“ und „tankID“. Ich mag nicht auch „_fooname“ zu benennen, wenn „fooName“ zur Verfügung steht. Aber ich muss wiederholen, dass dies subjektiv ist, und unterschiedliche Menschen haben unterschiedliche Vorstellungen davon, was gut und schlecht aufgrund ihrer bisherigen Erfahrungen und Bildung.

Eigentlich gibt es keine „Standard“ Konvention zu diesem Thema. Es gibt ein Microsoft-Richtlinie irgendwo bearbeitet, und wie bei bei jeder anderen Namenskonvention Richtlinie, sicherlich gibt es eine anderes es Widerlegung, aber hier ist, was ich als „Standard C # Gehäuse Konvention“ bin gekommen, zu verstehen.

  1. PerWordCaps in Typnamen (Klassen, Aufzählungen), Konstanten und Eigenschaften.
  2. camelcase für wirklich lange lokale Variablen und geschützt / private Variablen
  3. Kein ALL_CAPS immer (na ja, nur in Compiler definiert, aber nicht in Ihrem Code)
  4. Es scheint, einige der Systemklassen unterstrichenen Namen verwenden (_name) für private Variablen, aber ich denke, dass aus dem Hintergrund ursprünglichen Verfassers kommt, da die meisten von ihnen direkt aus C ++ kam. Beachten Sie auch, dass VB.NET ist nicht case sensitiv, so würden Sie nicht in der Lage sein, die geschützten Variablen zugreifen, wenn Sie die Klasse erweitert.

Eigentlich FxCop erzwingt ein einige dieser Regeln, aber (AFAIK) ignoriert, was die Rechtschreibung Sie für lokale Variablen verwenden.

Ich mag die Codierung Konventionen Bestimmungen im Aardvark'd Projekt spec

Das Beispiel von .NET Sie auf dem Laufenden war eine Funktion. Der angenommene „Standard“ für Methoden / Funktionen ist ein verkappter Kamel-Fall (oder Pascal, wenn man es so nennen will).

Ich bleibe Kamel Fall, wo ich kann. Es lässt Sie leicht den Unterschied zwischen einer Variablen kennen und ein Verfahren.

Außerdem, ich bin ein Fan von einem Unterstrich vor der lokalen Klassenvariablen kleben. Z.B .: _localVar.

Der Tag, als ich die Programmierung verlassen - sein, wenn Microsoft wird in Camelcase C # als Standard. Weil meine gewachsene Logik hat viele Gründe für Pascal, im Gegensatz zu Kindern Logik, die nur kürzeren Namen oder leichter zu schreiben pflegt.

Und BTW: camelcase kommt in erster Linie aus C ++ STD Bibliothek Stil, die native alte Sprache geerbt von C. So Java von C geerbt ++. Aber C # - ist völlig neue Sprache - sauber und Schönheit, mit neuen Regeln. Oldfags auf Java oder C ++ programmieren muss, neue Generation Menschen auf C # programmieren müssen -. Und sie sollten nie in Wechselwirkung treten

Betrachten Sie dieses Beispiel: 1) Pascal: list.Capacity.ToString (); 2) Camelcase: list.capacity.toString ();

(1) wir CAMEL CASE in langfristig haben !!! listCapacityToString bedeutet. In (2) haben wir Bullshit. ListcapacitytoString

Das ist, wie ich gelesen. Und warum ist unlogisch für Camelcase itselt. Ich konnte für Pascal töten, nie berühren, Kinder jeden Alters.

Microsoft -. Für immer oder bis sie verwenden Pascal

Je nachdem, was Sie bevorzugen ist, was zählt, offensichtlich auf dem in erster Linie Standard-Teams haften. In privaten Sie Code, wie Sie wollen, hat dies keine Auswirkungen das fertige Produkt, ob Sie Ihre Variable somevariable oder somevariable genannt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top