Namenskonvention von Variablen in der Programmiersprache C # [geschlossen]

10

Ich schaue mir auf C # ein Video über Variablen an. Der Autor deklariert eine Variable innerhalb einer Methode und nennt sie folgendermaßen: string MyName = "James";

Meine Frage ist: Welche Konvention wird von .Net Framework empfohlen? Ist es ein Pascal-Gehäuse wie im obigen Beispiel oder ein Kamelgehäuse?

Kaser
quelle
Das Problem mit dieser Frage, die Sie nicht kannten, so dass es nicht Ihre Schuld ist, ist, dass es tatsächlich keine kanonische Konvention für C # gibt. Es gibt gemeinsame Konventionen; Leider mehr als eine, aber es wäre ziemlich schwierig für Sie, hier eine Antwort zu bekommen, die alles andere als reine Meinung ist. Entschuldigung, Abstimmung zum Schließen; Mein Vorschlag: Verbringen Sie einige Zeit damit, Code in beliebten Github- und Codeplex-Repositories zu lesen, um zu sehen, welche Konventionen sie verwenden, da die Leute, die die meisten der populären schreiben, branchenerfahrene Leute sind und so kanonisch wie üblich.
Jimmy Hoffa
5
Namenskonventionen von MSDN - msdn.microsoft.com/en-us/library/xzf533w0(v=vs.71).aspx
Yusubov
1
@Yusubov Diese beschreiben die Benennung der öffentlichen Teile von Bibliotheken, nicht lokaler Variablen.
Svick

Antworten:

26

Ich glaube nicht, dass es so etwas wie eine "offizielle" Konvention gibt. Soweit ich weiß, wird Folgendes von vielen erfahrenen C # -Entwicklern als bewährte Methode angesehen:

PascalCase for public member variables (string MyName = "James")

camelCase for local variables (string myName = "James")

_leadingUnderscore for private member variables (string _myName = "James")

Mit diesem Ansatz kann man anhand des ersten Buchstabens zwischen lokalen Variablen sowie öffentlichen und privaten Mitgliedern unterscheiden.

Wie bei jeder Codierungskonvention unterliegt auch dies persönlichen Vorlieben. Daher gibt es keine eindeutige Antwort. Ein allgemeines Ziel sollte sein, den Code so lesbar und verständlich wie möglich zu halten.

glasiert
quelle
3
+1 Dies kommt dem Stil nahe, den ich gesehen habe. Ich glaube, es ist im Allgemeinen dem Stil entnommen, der in den Beispielen von MSDN verwendet wird. Normalerweise sehe ich Immobilien bekommen PascalCase, Einheimische bekommen camelCaseund private Mitglieder bekommen eine _leadingUnderscore.
KChaloux
Meinen Sie Felder oder Eigenschaften, als Sie Mitgliedsvariablen sagten?
Kaser
Delphi-Entwickler neigen dazu, Funktions- / Methodenparameter zu benennen, indem sie ihnen ein 'a' voranstellen : (aParameter: string). Mir ist klar, dass Parameter im Wesentlichen lokale Variablen sind, insbesondere wenn sie als Wert übergeben werden, aber es ist oft sehr hilfreich zu "sehen", dass eine Variable tatsächlich als Parameter übergeben wird. Gibt es eine solche Konvention in C #?
Marjan Venema
Und noch eines: Mitgliedsfelder. Delphianer stellen ihnen ein 'F' voran. Ich habe C # -Code gesehen, der sie mit einem Unterstrich deklariert : private string _SomeString. Würden Sie sagen, dass dies eine Konvention ist? (Ich tauche nur meine Zehen in C # und wundere mich über dieses Zeug).
Marjan Venema
1
Das ist ungenau. Es gibt veröffentlichte Namenskonventionen für öffentliche Mitglieder (und öffentliche Klassen usw.).
Svick
7

Die .Net Framework-Namenskonventionen ( v4.5 , v1.1 ) sind diesbezüglich agnostisch. Sie geben keinen Standard für die Benennung lokaler Variablen an. Sie müssen sich für eine eigene Konvention entscheiden, um diese zu benennen.

Ich persönlich benutze camelCase und unterscheide Mitgliedsvariablen thisbei Bedarf von Parameternamen mit . Führende Unterstriche (dh _memberVariable) sind aber auch gültig.

Robert Harvey
quelle
1
Dies ist genau der Grund für die Verwendung von Namenskonventionen - thiszur Unterscheidung lokaler Variablen von Feldern / Eigenschaften. 5 zusätzliche Buchstaben jedes Mal ist zu viel imho.
Sinatr