Frage

Ich habe kürzlich angefangen mit C# zu arbeiten und habe festgestellt, dass die Konvention zu sein scheint, dass die Variablen zusammen mit den Methoden mit einem Großbuchstaben beginnen.

Ist dies die einzige Sprache, die das tut und warum? Zum Beispiel:

Page Page = new Page();
Page.Action(); 

In anderen Sprachen würden Sie stattdessen sehen:

Page page = new Page();
page.action();

Es gibt andere Beispiele dafür, die verwirrend sind, da ich viel mit UML, Ruby, C ++ und Java gearbeitet habe.

Meine Frage ist, warum C# es so macht, wenn andere Sprachen nicht?

Bearbeiten

Andere Stapelüberlaufbenutzer stellen fest, dass C# dieser Konvention nicht folgt, dies war nur ein Fehler von meiner Seite.

War es hilfreich?

Lösung

Nun, nein: Die Konvention in C# gilt für Kamelcased Variable (und Feld-) Namen und Pascalcase -Methoden:

Page page = new Page();
page.Action();

Andere Tipps

Nein, das ist ziemlich nicht standardmäßig C# Code. Die Richtlinien für .NET Framework Design in Abschnitt 2.6 empfehlen die Verwendung von Kamelgehäuse für lokale Variablennamen.

Öffentliche Mitglieder verwenden PascalCase, private Mitglieder verwenden camelCase.

Ich denke, dass dies klarer macht, welche Methoden eine Klasse unterstützen und welche Methoden eine Klasse definieren.

public class Foo
{
    private Bar bar;
    public Bar Bar { get; set; }

    public void DoFoo()
    {
        makeFoo();
    }

    private void makeFoo()
    {
    }
}

Jede Reihe von C# -Konventionen, die ich geschrieben oder verwendet habe, würde das Kamel -Fall für Variablen angeben, also:

Page page = new Page();
MyClass myClass = new MyClass();

Ich bin mir nicht sicher, wo Sie Pascal Case verwendet haben, aber es ist sicherlich nicht etwas, das für C#oder Standard inhärent ist.

Variablen in C# beginnen normalerweise nicht mit einem Großbuchstaben (obwohl dies offensichtlich der eigenen Implementierung des Entwicklers liegt). Was Sie wahrscheinlich verwirrt sind, ist das Konzept von a Eigentum. Eigenschaften in C# werden syntaktisch wie Variablen verwendet (da sie abgerufen oder zugeordnet werden können, anstatt nur wie eine Funktion ausgeführt werden), können jedoch die Geschäftslogik für beide Vorgänge zusammenfassen.

Um einen breiteren Teil Ihrer Frage zu beantworten, beginnen sowohl Eigenschaften als auch Methoden/Funktionen normalerweise mit einem Großbuchstaben nach dem Buchstaben Microsoft -Richtlinien.

Pascalcase war lange vor .NET eine Konvention bei Microsoft. (In der Win32 -API usw.)

Eine Konvention ist auch sinnvoll, in einer einzelnen Umgebung zu verwenden. .NET ist für sich genommen eine umfassende Umgebung, und Microsoft-the-Company-andere ist es wirklich keinen Sinn, die eines anderen zu übernehmen.

Ich bezweifle auch sehr, dass UML eine Namenskonvention hat oder dass selbst die Idee, dass UML eine Namenskonvention hat, Sinn macht. UML modelliert Ihre Software und sollte der Konvention dieser Software folgen.

Sie können viel darüber herausfinden, welche Konventionen mit den beiden folgenden Tools übernommen werden sollen.

Fxcop: http://msdn.microsoft.com/en-us/library/bb429476(vs.80).aspx

Stylecop: http://code.msdn.microsoft.com/sourceanalysis

Public = pascalcase, ich neige nur dazu, Kamelase für private Felder und Parameterargumente zu verwenden.

Lesen Sie dies Codierungsstandard allerdings Auf Google leicht durchsuchbar, kein schlechter Ort zum Starten.

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