2009-08-12 14 views
6

In C# (. NET), was sind die regulären "Formatierungs" -Standards?Was sind die C# "Formatierungs" -Standards?

Zum Beispiel für Parameter Namen, bis jetzt bemerkte ich CamelCase ohne Präfix, ist das richtig? Für Objektnamen, CamelCase und keine Präfix entweder, oder?

Für Namespaces, Klassen, Funktionen und Eigenschaften wird der erste Buchstabe des Wortes großgeschrieben und es gibt kein Präfix, ist das richtig (wieder)?

Wie werden "temporäre" Objekte formatiert?

Beispiel:

namespace TestNamespace 
{ 
    class MyOwnCoolClass 
    { 
     MyOwnCoolClass(int length, BinaryWriter writer) 
     { 
      BinaryWriter tempbw = new BinaryWriter(length); 
      return tempbw; 
     } 
    } 
} 

(Hinweis: Dieser Code nicht gültig ist, weiß ich, es ist nur die Formatierung zeigen). Danke!

+1

Gehen Sie zu "Code Complete 2" von Steve McConnell -> http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&s=books&qid=1250101785&sr = 8-1 – Zack

Antwort

13

Wenn Sie StyleCop verwenden, erhalten Sie eine gute Konsistenz mit der Microsoft .NET Design Guidelines for Developing Class Libraries. StyleCop erzwingt auch mehrere zusätzliche Dinge wie Abstand, Reihenfolge der Elemente in einer Datei und Benennung von nicht-öffentlichen Code-Elementen.

+0

+1 nahm die Worte direkt aus meinen Fingern! – curtisk

+0

Ich habe nicht vor, StyleCop zu verwenden, aber der Link füllt genau das, was ich brauche. Vielen Dank! – Lazlo

5

Vollständige Richtlinien von Microsoft finden Sie in der Class Design Guidelines. Es ist alt, aber ich habe noch nichts aktualisiert auf MSDN gefunden, und ich glaube, es ist immer noch die Standardsatzempfehlungen

+0

Siehe meinen Beitrag für einen Link zu den aktualisierten Richtlinien. :) –

+0

Hier ist der aktualisierte Link: http://msdn.microsoft.com/en-us/library/ms229042.aspx –

+0

Danke für Sie beantworten, aber 280Z28 Antwort passte meine Frage mehr. :) Dennoch, +1 – Lazlo

0

Ich würde am folgenden Coding Practices.

einen Blick Es deckt praktisch alles, was ich in den meisten C# -Code zu sehen, die ich gelesen ... einschließlich UI-Elemente prefixing. Ich persönlich folge es nicht dem Buchstaben, aber es gibt Ihnen eine gute Idee des allgemeinen Standards und was gut/schlecht Praxis ist.

0

Es gibt Verweise auf Microsoft-Codierungsstandards. In Visual Studio 2005 und 2008 ist eine Code Analysis-Engine integriert, die Sie durch diese Codierungsstandards führt und Sie auch auf einige Best Practices hinweist. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und klicken Sie auf "Codeanalyse im Projekt ausführen".

Immer wenn ein ungültiger oder weniger bevorzugter Codeabschnitt entdeckt wird, warnt er Sie nicht nur, sondern verweist Sie auf eine Hilfefunktion auf der FxCop-Site.

0

MSDN: Naming Guidelines

Ich neige dazu, zu verfolgen, wie die .NET-Framework ist kodiert, so meinen Code mit .NET Framework konsistent ist.

Meine einzige persönliche Präferenz ist die Benennung von Klassenvariablen, die ich das Präfix "m_" vor jeder Variablen wie private int m_count verwenden.

2

Ich schrieb these guidelines über das letzte Jahr mit verschiedenen Richtlinien von MSFT und anderen weithin akzeptierten Richtlinien. Vielleicht möchten Sie es überprüfen, es hat auch andere Dinge, wie das Einrichten von Projekten und was nicht, aber alle Benennungsrichtlinien sind auch da.

bearbeiten: Ich bemerkte, dass dies eine alte Version ist, ich habe eine neue Version, die ich für eine Weile geschrieben habe und es enthält viele Leckereien, aber es ist nicht getan. Ich werde diesen Beitrag aktualisieren, wenn es veröffentlicht wird.

+1

Als Solo-Entwickler, der noch nie jemanden hatte, der ihm Richtlinien oder Konventionen gab, finde ich das sehr informativ. Ich bin gespannt, wie Sie mit 'var' und den Codepages eines Formulars umgehen. Ich sehe den Abschnitt "Source File Layout" und ich frage mich, ob das auch für WinForm-Codepages gilt. Außerdem geben Sie unter "Steuerelemente und Komponenten" an, dass "UX" verwendet werden soll, um Codierungsänderungen später zu verhindern. Ist das also die gleiche Mentalität für die Verwendung von var? Danke für den doc! –

+0

Ja, das gleiche gilt für Formulare. Die neue Version wird mehr Leckereien wie diese enthalten. Normalerweise würde ich Ereignisse in der Region getrennt von Methoden steuern. Normalerweise haben meine Formulare jedoch keine Methoden, da ich immer eine Service-Schicht separat von der UI-Ebene erstelle. Ich bin geneigt, die neueste Version ein wenig schneller zu beenden, also werde ich hier zurück posten, wenn es veröffentlicht wird. Pass auf. ;) Danke für den tollen Kommentar übrigens! –

+0

@Refracted Paladin: Wir verwenden das Präfix "ux", um zu verhindern, dass später in der Entwicklung ein UI Control geändert wird. z.B. Ungarische Konventionen verwenden bedeutet, wenn Sie ein Textfeld in ein Kombinationsfeld ändern, würden Sie den Namen von "txtMyTextBox" ändern -> "cmbMyComboBox", wenn Sie ein Stickler für Namenskonventionen sind. Außerdem stellen "m_" und "ux" Gruppenvariablen und Steuerelemente in Intellisense voran. – Zack

Verwandte Themen