Domanda

Ho iniziato a lavorare con C # di recente e ho notato che la convenzione sembra essere che le variabili iniziano con una lettera maiuscola insieme ai metodi.

È questa l'unica lingua che lo fa e perché? Ad esempio:

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

In altre lingue, vedresti invece:

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

Ci sono altri esempi di questo che sono confusi poiché ho lavorato molto con UML, Ruby, C ++ e Java.

La mia domanda è: perché C # lo fa in questo modo quando altre lingue no?

Modifica

  

Altri utenti di Stack Overflow stanno notando che C # non segue questa convenzione, questo è stato solo un errore da parte mia.

È stato utile?

Soluzione

Beh, in realtà no: la convenzione in C # è per nomi di variabili (e campi) camelCased e metodi PascalCase:

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

Altri suggerimenti

No, questo è un codice C # abbastanza non standard. Le linee guida di .Net Framework Design nella sezione 2.6 raccomandano l'uso dell'involucro del cammello per i nomi delle variabili locali.

I membri pubblici usano PascalCase , i membri privati ??usano camelCase .

Penso che questo chiarisca quali metodi supportano una classe rispetto a quali metodi definiscono una classe.

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

    public void DoFoo()
    {
        makeFoo();
    }

    private void makeFoo()
    {
    }
}

Ogni insieme di convenzioni C # che ho scritto o usato specificava il caso cammello per le variabili, quindi:

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

Non sono sicuro di dove tu abbia visto il caso Pascal usato, ma certamente non è qualcosa inerente o standard per C #.

Le variabili in C # in genere non iniziano con una lettera maiuscola (anche se ovviamente dipende dall'implementazione dello sviluppatore). Ciò di cui probabilmente sei confuso è il concetto di proprietà. Le proprietà in C # sono utilizzate sintatticamente come variabili (in quanto possono essere recuperate o assegnate, anziché semplicemente eseguite come una funzione), ma possono incapsulare la logica aziendale su entrambe le operazioni.

Per rispondere a una parte più ampia della tua domanda, tuttavia, sia le proprietà che i metodi / funzioni in genere iniziano con una lettera maiuscola in base a Linee guida Microsoft .

PascalCase era una convenzione di Microsoft molto prima di .NET. (Nell'API Win32 ecc.)

Anche una convenzione ha senso utilizzare in un singolo ambiente. Essendo .NET un ambiente completo e Microsoft-the-company un altro, non ha davvero senso adottare qualcun altro.

Inoltre, dubito fortemente che UML abbia una convenzione di denominazione o che anche l'idea che UML abbia una convenzione di denominazione ha senso. UML modella il tuo software e dovrebbe seguire la convenzione di quel software.

Puoi scoprire molto su quali convenzioni dovrebbero essere adottate usando i due seguenti strumenti.

FxCop: http://msdn.microsoft. com / it-it / library / bb429476 (VS.80) aspx

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

Public = PascalCase, tendo a usare camelCase solo per campi privati ??e argomenti parametri.

Leggi questo standard di codifica sebbene sia facilmente ricercabile su google, non male punto di partenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top