Perché C # usa una convenzione di denominazione diversa? [chiuso]
-
03-07-2019 - |
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.
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
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.