Ich habe kürzlich angefangen, mit Unity3D zu arbeiten und hauptsächlich mit C # zu schreiben. Da ich normalerweise in Java programmiere, sind die Unterschiede nicht allzu groß, aber ich habe trotzdem auf einen Crashkurs verwiesen , um sicherzugehen, dass ich auf dem richtigen Weg bin.
Meine größte Neugier bei C # ist jedoch, dass der erste Buchstabe der Methodennamen in Großbuchstaben geschrieben wird (z. B. Java: getPrime()
C #: GetPrime()
aka: Pascal Case?). Gibt es dafür einen guten Grund? Ich verstehe von der Crashkurs-Seite, dass ich gelesen habe, dass es anscheinend eine Konvention für .Net ist, und ich habe keine Möglichkeit, sie jemals zu ändern, aber ich bin gespannt, warum dies im Gegensatz zum normalen (relativen?) Kamelfall so gemacht wurde das heißt, Java verwendet.
Hinweis: Ich verstehe, dass Sprachen ihre eigenen Kodierungskonventionen haben (Python-Methoden sind alles Kleinbuchstaben, was auch für diese Frage gilt), aber ich habe nie wirklich verstanden, warum sie nicht in einen Standard formalisiert sind.
quelle
camelCase
undPascalCase
und ansehenunderscore_case
und sagen kann, dass einer von ihnen normal ist (sogar relativ normal) und die anderen nicht. Wie @dasblinkenlight sagte, ist es eine willkürliche Wahl. Das einzige, was Sie für ungewöhnlich hält, ist, dass Sie "normalerweise in Java programmieren" und sich daher an die willkürliche Wahl für Java gewöhnt haben.Antworten:
Namenskonventionen stehen für eine willkürliche Auswahl ihres Herausgebers. In der Sprache selbst gibt es nichts, was Sie daran hindert, Ihre Methoden so zu benennen, wie Sie es in Java tun: Solange das erste Zeichen ein Buchstabe / Unterstrich ist und alle anderen Zeichen Buchstaben, Ziffern oder Unterstriche sind, wird C # dies nicht tun beschweren. Die mit .NET gelieferten Klassenbibliotheken folgen jedoch einer Konvention, die Microsoft intern übernommen hat. Microsoft hat diese Richtlinien auch veröffentlicht , sodass andere Benutzer sie möglicherweise auch für ihre eigenen Klassenbibliotheken übernehmen können. Obwohl Sie die Richtlinien von Microsoft befolgen oder ignorieren möchten, kann es sein, dass andere Benutzer sich schneller mit Ihrem Code vertraut machen, wenn Sie dieselben Benennungsrichtlinien befolgen.
quelle
this
Schlüsselwort macht das gleiche. Die Stilwahlen sind praktisch, auch wenn sie fremd erscheinen mögenMöglicherweise aufgrund des Einflusses von Pascal / Delphi. Der Schöpfer von C # und Delphi war immerhin dieselbe Person (Anders Hejlsberg).
Delphi-Codierungskonventionen stimmen in dieser Hinsicht im Großen und Ganzen mit denen von C # überein. siehe http://www.econos.de/delphi/cs.html#ObjectPascal_Procedures oder http://wiki.delphi-jedi.org/index.php?title=Style_Guide#Method_Naming - Zufall?
quelle
Zusätzlich zu den anderen Antworten können Kamel-Groß- und Kleinschreibung für Methoden zu Konflikten mit Namen für private Mitglieder, Parametern und Methodenvariablen führen, die Kamel-Groß- und Kleinschreibung für ihre Benennung verwenden. In Java (und C # 1.0) ist dies nicht besonders häufig, da die Verwendung von Delegaten umständlich und selten ist. In modernem C # ist das nicht gerade üblich , aber es ist auch nicht ungewöhnlich.
quelle