Einige C # -Namenskonventionen

7

1) Wie lautet die Richtlinie zum Deklarieren einer Variablen? Solltest du immer das Schlüsselwort private verwenden, oder ist es in Ordnung, es zu überspringen?

%Vor%

gegen

%Vor%

Der einzige Grund, den ich sehe, ist, dass Microsoft eines Tages die Standardzugriffsmodifikatoren in public anstatt in private ändern kann.

Wo steht, dass privat optional ist? Irgendwelche Verweise auf MSDN ?

2) Benennungsrichtlinie für Konstanten?

Ich habe immer Caps verwendet, wenn ich eine Konstante geschrieben habe, aber ein Freund hat mir gesagt, dass dies gegen die Microsoft-Namensrichtlinien verstößt, oder?

%Vor%

vs

%Vor%

3) Pascal oder Kamel?

Ich persönlich finde Camel einfach hässlich.

    
Patrick 05.08.2009, 14:04
quelle

15 Antworten

22

1) Das Schlüsselwort private ist optional. Ich bezweifle stark, dass Microsoft jemals die Standardsichtbarkeit von Feldern ändern wird, da dies eine massive, bahnbrechende Änderung wäre (ganz zu schweigen von einer dummen). Es ist nur eine Frage des persönlichen Geschmacks, das Schlüsselwort private wegzulassen.

2) Verwenden Sie keine "Shouty" -Konstanten - befolgen Sie die Konvention des Frameworks und verwenden Sie Pascal Casing (z. B. ThisIsAConstant ist gegenüber THIS_IS_A_CONSTANT vorzuziehen).

    
Andrew Hare 05.08.2009 14:05
quelle
5

Sie können Ihre Frage nicht direkt beantworten, aber Sie wären vielleicht an Microsofts StyleCop interessiert. Dies ist ein Werkzeug zur Analyse Ihres Quellcodes in Bezug auf Stil- und Konsistenzregeln. Standardmäßig gelten die Gestaltungsrichtlinien von Microsoft.

    
Stewart 05.08.2009 14:27
quelle
2

Die offizielle Empfehlung für die Namensgebung von Constants nach den MS-Richtlinien, da sie noch nicht vollständig spezifiziert wurde:

  • Verwenden Sie Großbuchstaben für Namen mit einem oder zwei Zeichen , z. B. System.Math.PI, System.Math.E
  • Verwenden Sie PascalCasing .
  • Verwenden Sie PascalCasing für alles, was mindestens 3 Zeichen entspricht
Nobody 17.09.2010 15:57
quelle
1

private ist optional, aber zusätzliche Eingabe. Ich mag es, es zu überspringen.

Was die Eigenschaften betrifft, hängt es von Ihren Vorlieben ab und von wem Sie arbeiten. Wenn Sie jedoch Zweifel haben, sehen Sie sich das .NET Framework an und wie diese Konstanten benennen.

    
Ben Lesh 05.08.2009 14:08
quelle
1

Ich bezweifle, dass Microsoft jemals das Standardverhalten für C # -Membervariablen ändern wird. Ich würde Dinge als privat deklarieren, dass Sie privat sein wollen, und explizit Dinge öffentlich machen, dass Sie öffentlich sein wollen, nur für die Klarheit, wenn nichts anderes.

Ich denke, die wichtige Regel für Konstanten besteht darin, einfach eine Namenskonvention zu verwenden, der alle zustimmen und die Sie als Konstante erkennen. Wenn jeder Großbuchstaben mag, dann benutze das. Wenn Sie mehr Standard sein wollen, verwenden Sie Pascal Gehäuse.

    
Jon 05.08.2009 14:09
quelle
1

privat ist optional, Sie können es also überspringen.

Wenn Ihre Klasse jedoch eine Mischung aus privaten, geschützten und öffentlichen Datenelementen aufweist, empfiehlt es sich, aus Gründen der Lesbarkeit anzugeben, dass ein Mitglied privat ist.

    
azheglov 05.08.2009 14:17
quelle
1

Auch private Feldnamen sollten in camel case vorkommen, optional mit Präfix _ oder m_:

%Vor%     
Ray 05.08.2009 14:09
quelle
1

Ich persönlich würde es lieben, wenn Konstanten ALL_CAPS wären, wie in einigen anderen Sprachen ... Ich denke, dass es eine schnelle und einfache Möglichkeit ist, Konstanten zu erkennen. Da andere Konstanten in das UsePascalCasing-Framework integriert sind, sollten Sie das auch tun. Konsistenz ist sehr wichtig.

Soweit "Pascal vs. Camel", stoßen Sie auf das gleiche Problem. Wenn Sie nur von sich aus programmieren würden, könnten Sie tun, was immer Sie wollten. Da Sie jedoch ein bereits bestehendes Framework verwenden, sollten Sie aus Konsistenzgründen denselben Stil emulieren. Sobald Sie sich daran gewöhnt haben, werden Sie wahrscheinlich feststellen, dass das Folgen der gleichen Regeln tatsächlich hilft, denn Sie werden sofort wissen, dass etwas ein Parameter oder eine lokale Variable (camelCasing) im Vergleich zu einer Eigenschaft oder Konstante ist (PascalCasing). .

    
Beska 05.08.2009 14:31
quelle
1
  

Verwenden Sie Pascal-Hülle in Feldnamen.

Von .NET Framework-Entwicklerhandbuch Namen von Typ-Mitgliedern

  

Verwenden Sie Pascal Gehäuse für alle Öffentlichkeit   Namen von Mitgliedern, Typen und Namespaces   bestehend aus mehreren Wörtern.

     

Beachten Sie, dass diese Regel nicht gilt für   Instanzfelder. Aus Gründen, die sind   detailliert im Member Design   Richtlinien sollten Sie nicht öffentlich verwenden   Instanzfelder.

Von .NET Framework-Entwicklerhandbuch Kapitalisierungskonventionen

Beachten Sie den impliziten Standard des Pascal-Gehäuses bei konstanter Benennung.

  

Verwenden Sie konstante Felder für Konstanten   das wird sich niemals ändern.

     

Der Compiler brennt die Werte von const   Felder direkt in den aufrufenden Code.   Daher können konstante Werte niemals sein   geändert ohne das Risiko des Brechens   Kompatibilität.

%Vor%

From Framework Design Guidelines: Konventionen, Idiome und Patterns für wiederverwendbare .NET-Bibliotheken, zweite Ausgabe Seite 161

Ich kann keinen Hinweis darauf finden, ob Sie private Felder mit dem Begriff privat dekorieren sollen. das ist eher eine interne Stilwahl, die ich annehmen würde. Was auch immer Sie auswählen, Sie wollen konsistent bleiben.

    
Aaron Fischer 05.08.2009 14:56
quelle
0

1) Ich neige dazu, privat zu verwenden, nur um explizit zu sein, aber es gibt wirklich keine Notwendigkeit, ich denke,

2) Es stimmt, Microsoft empfiehlt, keine Caps für Konstanten zu verwenden.

Die Namenskonventionen von Microsoft für Typ-Member finden Sie hier

    
Rob Levine 05.08.2009 14:10
quelle
0

Hier ist ein kostenloses eBook mit C # und VB .net Codierungsrichtlinien, es ist sehr gut

Link zum E-Book-Download

Persönlich mag ich es jedoch, explizit festzulegen, wann etwas privat ist, um es lesbar zu machen. Tatsächlich bin ich so daran gewöhnt, dass ich verwirrt werde, wenn ich es nicht sehe. Was Konstanten betrifft, verwende ich PascalCasing.

    
Carlo 05.08.2009 14:20
quelle
0
___ answer1233508 ___ ___ answer1233621 ___

Sie können Ihre Frage nicht direkt beantworten, aber Sie wären vielleicht an Microsofts StyleCop interessiert. Dies ist ein Werkzeug zur Analyse Ihres Quellcodes in Bezug auf Stil- und Konsistenzregeln. Standardmäßig gelten die Gestaltungsrichtlinien von Microsoft.

    
___ answer1233481 ___

1) Das Schlüsselwort %code% ist optional. Ich bezweifle stark, dass Microsoft jemals die Standardsichtbarkeit von Feldern ändern wird, da dies eine massive, bahnbrechende Änderung wäre (ganz zu schweigen von einer dummen). Es ist nur eine Frage des persönlichen Geschmacks, das Schlüsselwort %code% wegzulassen.

2) Verwenden Sie keine "Shouty" -Konstanten - befolgen Sie die Konvention des Frameworks und verwenden Sie Pascal Casing (z. B. %code% ist gegenüber THIS_IS_A_CONSTANT vorzuziehen).

    
___ answer3736930 ___

Die offizielle Empfehlung für die Namensgebung von Constants nach den MS-Richtlinien, da sie noch nicht vollständig spezifiziert wurde:

  • Verwenden Sie Großbuchstaben für Namen mit einem oder zwei Zeichen , z. B. System.Math.PI, System.Math.E
  • Verwenden Sie PascalCasing .
  • Verwenden Sie PascalCasing für alles, was mindestens 3 Zeichen entspricht
___ answer1233504 ___

Ich bezweifle, dass Microsoft jemals das Standardverhalten für C # -Membervariablen ändern wird. Ich würde Dinge als privat deklarieren, dass Sie privat sein wollen, und explizit Dinge öffentlich machen, dass Sie öffentlich sein wollen, nur für die Klarheit, wenn nichts anderes.

Ich denke, die wichtige Regel für Konstanten besteht darin, einfach eine Namenskonvention zu verwenden, der alle zustimmen und die Sie als Konstante erkennen. Wenn jeder Großbuchstaben mag, dann benutze das. Wenn Sie mehr Standard sein wollen, verwenden Sie Pascal Gehäuse.

    
___ answer1233497 ___

private ist optional, aber zusätzliche Eingabe. Ich mag es, es zu überspringen.

Was die Eigenschaften betrifft, hängt es von Ihren Vorlieben ab und von wem Sie arbeiten. Wenn Sie jedoch Zweifel haben, sehen Sie sich das .NET Framework an und wie diese Konstanten benennen.

    
___ qstntxt ___

1) Wie lautet die Richtlinie zum Deklarieren einer Variablen? Solltest du immer das Schlüsselwort %code% verwenden, oder ist es in Ordnung, es zu überspringen?

%Vor%

gegen

%Vor%

Der einzige Grund, den ich sehe, ist, dass Microsoft eines Tages die Standardzugriffsmodifikatoren in %code% anstatt in %code% ändern kann.

Wo steht, dass privat optional ist? Irgendwelche Verweise auf MSDN ?

2) Benennungsrichtlinie für Konstanten?

Ich habe immer Caps verwendet, wenn ich eine Konstante geschrieben habe, aber ein Freund hat mir gesagt, dass dies gegen die Microsoft-Namensrichtlinien verstößt, oder?

%Vor%

vs

%Vor%

3) Pascal oder Kamel?

Ich persönlich finde Camel einfach hässlich.

    
___ qstnhdr ___ Einige C # -Namenskonventionen ___ answer1233562 ___

privat ist optional, Sie können es also überspringen.

Wenn Ihre Klasse jedoch eine Mischung aus privaten, geschützten und öffentlichen Datenelementen aufweist, empfiehlt es sich, aus Gründen der Lesbarkeit anzugeben, dass ein Mitglied privat ist.

    
___ answer1233502 ___

Auch private Feldnamen sollten in camel case vorkommen, optional mit Präfix _ oder m_:

%Vor%     
___ answer1233637 ___

Ich persönlich würde es lieben, wenn Konstanten ALL_CAPS wären, wie in einigen anderen Sprachen ... Ich denke, dass es eine schnelle und einfache Möglichkeit ist, Konstanten zu erkennen. Da andere Konstanten in das UsePascalCasing-Framework integriert sind, sollten Sie das auch tun. Konsistenz ist sehr wichtig.

Soweit "Pascal vs. Camel", stoßen Sie auf das gleiche Problem. Wenn Sie nur von sich aus programmieren würden, könnten Sie tun, was immer Sie wollten. Da Sie jedoch ein bereits bestehendes Framework verwenden, sollten Sie aus Konsistenzgründen denselben Stil emulieren. Sobald Sie sich daran gewöhnt haben, werden Sie wahrscheinlich feststellen, dass das Folgen der gleichen Regeln tatsächlich hilft, denn Sie werden sofort wissen, dass etwas ein Parameter oder eine lokale Variable (camelCasing) im Vergleich zu einer Eigenschaft oder Konstante ist (PascalCasing). .

    
___ answer1233813 ___
  

Verwenden Sie Pascal-Hülle in Feldnamen.

Von .NET Framework-Entwicklerhandbuch Namen von Typ-Mitgliedern

  

Verwenden Sie Pascal Gehäuse für alle Öffentlichkeit   Namen von Mitgliedern, Typen und Namespaces   bestehend aus mehreren Wörtern.

     

Beachten Sie, dass diese Regel nicht gilt für   Instanzfelder. Aus Gründen, die sind   detailliert im Member Design   Richtlinien sollten Sie nicht öffentlich verwenden   Instanzfelder.

Von .NET Framework-Entwicklerhandbuch Kapitalisierungskonventionen

Beachten Sie den impliziten Standard des Pascal-Gehäuses bei konstanter Benennung.

  

Verwenden Sie konstante Felder für Konstanten   das wird sich niemals ändern.

     

Der Compiler brennt die Werte von const   Felder direkt in den aufrufenden Code.   Daher können konstante Werte niemals sein   geändert ohne das Risiko des Brechens   Kompatibilität.

%Vor%

From Framework Design Guidelines: Konventionen, Idiome und Patterns für wiederverwendbare .NET-Bibliotheken, zweite Ausgabe Seite 161

Ich kann keinen Hinweis darauf finden, ob Sie private Felder mit dem Begriff privat dekorieren sollen. das ist eher eine interne Stilwahl, die ich annehmen würde. Was auch immer Sie auswählen, Sie wollen konsistent bleiben.

    
___ answer1233578 ___

Hier ist ein kostenloses eBook mit C # und VB .net Codierungsrichtlinien, es ist sehr gut

Link zum E-Book-Download

Persönlich mag ich es jedoch, explizit festzulegen, wann etwas privat ist, um es lesbar zu machen. Tatsächlich bin ich so daran gewöhnt, dass ich verwirrt werde, wenn ich es nicht sehe. Was Konstanten betrifft, verwende ich PascalCasing.

    
___ answer1233505 ___

1) Ich neige dazu, privat zu verwenden, nur um explizit zu sein, aber es gibt wirklich keine Notwendigkeit, ich denke,

2) Es stimmt, Microsoft empfiehlt, keine Caps für Konstanten zu verwenden.

Die Namenskonventionen von Microsoft für Typ-Member finden Sie hier

    
___ answer1234479 ___

@Dan Diplo     # Verwenden Sie kein Präfix für Mitgliedsvariablen (, m, s_, usw.). Wenn Sie # zwischen lokalen Variablen und Member-Variablen unterscheiden möchten, sollten Sie "this." In C # und "Me." In VB.NET verwenden.

Das ist höchst strittig. Präfix hilft Intellisense: Sie setzen Präfix Zeichen und erhalten nur eine Liste von lokalen privaten Instanzfeldern. Mit diesem. Sie erhalten eine vollständige Liste, die aus Methoden, Feldern, Eigenschaften, Ereignissen usw. besteht.

Beachten Sie auch folgendes Beispiel:

%Vor%     
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123variables ___ DAS IST AMBIGUOUS; VERWENDEN SIE SPRACHSCHRIFTEN, WENN SIE ANWENDBAR SIND. Eine Variable ist ein benannter Datenspeicherort im Speicher. Ein Computerprogramm kann unter Verwendung von Variablen Zahlen, Text, Binärdaten oder eine Kombination dieser Datentypen speichern. Sie können im Programm weitergegeben werden. ___ tag123namingconventions ___ Namenskonventionen beziehen sich auf allgemeine Regeln für Namen, die Programmierkonstrukten wie Variablen und Methoden zugewiesen sind. Diese Konventionen erleichtern die Lesbarkeit und verbessern dadurch die Wartbarkeit von Code, indem sie die Benennungskonsistenz über verschiedene Module hinweg durchsetzen. ___ answer1843698 ___

In C # wird standardmäßig die größtmögliche Sichtbarkeit verwendet. Ohne einen Modifikator:

  • nicht-innere Klassen sind intern
  • innere Klassen sind privat
  • Klassenmitglieder sind privat

Da es eine gute Idee ist, die Sichtbarkeit so gut wie möglich einzuschränken, versuche ich immer den Modifikator zu verlassen, wo die Standardsichtbarkeit alles ist, was ich brauche. Dies macht diejenigen Member, die sind nicht der Standard offensichtlicher, was hilft mir aufmerksam zu machen, ob sie wirklich so sichtbar sein müssen.

Für Konstanten würde ich es vorziehen, sie in ihre eigenen Klassen zu setzen, so dass das Format ClassName.ConstantName es offensichtlich macht, was sie sind.

Im Allgemeinen folge ich den Designrichtlinien für die Entwicklung von Klassenbibliotheken .

    
___ tag123constants ___ Konstanten in der Programmierung sind Definitionen, deren Wert während der Ausführung eines Programms festgelegt ist. Literale in den meisten Sprachen sind zum Beispiel Konstanten. In referenziell transparenten Programmierstilen sind alle Definitionen konstant. ___ tag123private ___ Private ist eine Art der Kapselung in der objektorientierten Programmierung. ___ answer1233921 ​​___

Sie könnten auch an Microsofts internen Richtlinien für die interne Codierung für das .NET Framework interessiert sein, wie enthüllt von Brad Abrams in seinem Blog :

Befolgen Sie alle .NET Framework-Designrichtlinien für interne und externe Member. Zu den Highlights gehören:

  • Verwenden Sie keine ungarische Schreibweise
  • Verwenden Sie kein Präfix für Mitgliedsvariablen (, m , s_ usw.). Wenn Sie
  • unterscheiden möchten
  • zwischen lokalen Variablen und Member-Variablen sollten Sie "this." in C # und "Me." in VB.NET verwenden.
  • Verwenden Sie camelCasing für Member-Variablen
  • Verwenden Sie camelCasing für Parameter
  • Verwenden Sie camelCasing für lokale Variablen
  • Verwenden Sie PascalCasing für Namen von Funktionen, Eigenschaften, Ereignissen und Klassen
  • Präfixschnittstellennamen mit "I"
  • voranstellen
  • Platzieren Sie keine Enums, Klassen oder Delegaten mit einem beliebigen Buchstaben
___
Dan Diplo 05.08.2009 15:13
quelle
0

@Dan Diplo     # Verwenden Sie kein Präfix für Mitgliedsvariablen (, m, s_, usw.). Wenn Sie # zwischen lokalen Variablen und Member-Variablen unterscheiden möchten, sollten Sie "this." In C # und "Me." In VB.NET verwenden.

Das ist höchst strittig. Präfix hilft Intellisense: Sie setzen Präfix Zeichen und erhalten nur eine Liste von lokalen privaten Instanzfeldern. Mit diesem. Sie erhalten eine vollständige Liste, die aus Methoden, Feldern, Eigenschaften, Ereignissen usw. besteht.

Beachten Sie auch folgendes Beispiel:

%Vor%     
Ray 05.08.2009 16:57
quelle
0

In C # wird standardmäßig die größtmögliche Sichtbarkeit verwendet. Ohne einen Modifikator:

  • nicht-innere Klassen sind intern
  • innere Klassen sind privat
  • Klassenmitglieder sind privat

Da es eine gute Idee ist, die Sichtbarkeit so gut wie möglich einzuschränken, versuche ich immer den Modifikator zu verlassen, wo die Standardsichtbarkeit alles ist, was ich brauche. Dies macht diejenigen Member, die sind nicht der Standard offensichtlicher, was hilft mir aufmerksam zu machen, ob sie wirklich so sichtbar sein müssen.

Für Konstanten würde ich es vorziehen, sie in ihre eigenen Klassen zu setzen, so dass das Format ClassName.ConstantName es offensichtlich macht, was sie sind.

Im Allgemeinen folge ich den Designrichtlinien für die Entwicklung von Klassenbibliotheken .

    
Ryan Lundy 03.12.2009 23:06
quelle