Oglądam film na C # o zmiennych. Autor deklaruje zmienną w metodzie i nazwał ją tak: string MyName = "James";
moje pytanie brzmi: która konwencja jest zalecana przez .Net Framework. Czy jest to obudowa Pascala jak w powyższym przykładzie, czy jest to obudowa wielbłąda?
Odpowiedzi:
Nie sądzę, że istnieje coś takiego jak „oficjalna” konwencja. O ile mi wiadomo, wielu doświadczonych programistów C # uważa za dobrą praktykę:
PascalCase for public member variables (string MyName = "James")
camelCase for local variables (string myName = "James")
_leadingUnderscore for private member variables (string _myName = "James")
Dzięki takiemu podejściu można rozróżnić zmienne lokalne, a także członków publicznych i prywatnych na podstawie pierwszej litery.
Podobnie jak w przypadku każdej konwencji kodowania, podlega to również osobistym preferencjom. Dlatego nie ma jednoznacznej odpowiedzi. Ogólnym celem powinno być utrzymanie kodu tak, aby był jak najbardziej czytelny i zrozumiały.
źródło
PascalCase
, lokalnicamelCase
i prywatni członkowie_leadingUnderscore
.(aParameter: string)
. Zdaję sobie sprawę, że parametry są zasadniczo zmiennymi lokalnymi, szczególnie gdy są przekazywane przez wartość, ale często bardzo pomocne jest „zobaczenie”, że var jest przekazywany jako parametr. Czy istnieje taka konwencja w C #?private string _SomeString
. Czy powiedziałbyś, że to konwencja? (Po prostu zanurzam palce w C # i zastanawiam się nad tym).Konwencje nazewnictwa .Net Framework ( v4.5 , v1.1 ) są agnostyczne. Nie określają standardu nazewnictwa zmiennych lokalnych. Musisz nazwać własną konwencję.
Ja osobiście używam camelCase i w razie potrzeby rozróżniam zmienne składowe od nazw parametrów
this
. Ale wiodące podkreślenia (tj._memberVariable
) Są również ważne.źródło
this
do odróżniania zmiennych lokalnych od pól / właściwości. 5 dodatkowych liter za każdym razem to za dużo imho.