Конвенція іменування змінних у мові програмування C # [закрито]


10

Я переглядаю відео на C # про змінні. Автор оголошує змінну всередині методу і назвав її так: рядок MyName = "Джеймс";

моє питання: яку конвенцію рекомендує .Net Framework. Це корпус Паскаля, як у наведеному вище прикладі, чи це корпус верблюда?


Проблема з цим питанням, яке ви не знали, так що це не ваша вина, полягає в тому, що насправді не існує канонічної конвенції для C #. Існують загальні конвенції; на жаль, більше, ніж одне, але вам було б досить важко отримати тут відповідь, що не що інше, як чиста думка. Вибачте, голосування закрити; моя пропозиція: витратьте деякий час на читання коду в популярних сховищах github та codeplex, щоб побачити, які конвенції вони використовують як люди, які пишуть більшість популярних, - досвідчені люди в галузі, і як канонічно те, що є загальним, як ви знайдете.
Джиммі Хоффа

5
Іменування конвенцій від MSDN - msdn.microsoft.com/en-us/library/xzf533w0(v=vs.71).aspx
Юсубов

1
@Yusubov Ці описують іменування публічних частин бібліотек, а не локальних змінних.
svick

Відповіді:


26

Я не думаю, що існує щось на зразок "офіційної" конвенції. Наскільки мені відомо, багато досвідчених розробників C # вважають наступним:

PascalCase for public member variables (string MyName = "James")

camelCase for local variables (string myName = "James")

_leadingUnderscore for private member variables (string _myName = "James")

При такому підході можна виділити локальні змінні, а також державні та приватні члени у випадку їх першого листа.

Як і будь-яка угода про кодування, це також підпадає під особисті переваги. Тому однозначної відповіді немає. Загальною метою має бути збереження коду максимально читабельним та зрозумілим.


3
+1 Це близько до стилю, який я бачив. Я вважаю, що це, як правило, взято із стилю, який використовується у прикладах MSDN. Зазвичай я бачу отримання властивостей PascalCase, місцеві жителі camelCase, а приватні члени отримують _leadingUnderscore.
KChaloux

Ви маєте на увазі Поля чи Властивості, коли ви казали змінні члена?
Касер

Delphi розробники , як правило , до параметрів ім'я функції / методу, випереджаючи їх з «а»: (aParameter: string). Я розумію, що параметри є по суті локальними змінними, особливо коли вони передаються за значенням, але часто дуже корисно "бачити", що var фактично передається як параметр. Чи є така конвенція в C #?
Мар'ян Венема

І ще один: поля учасників. Delphians приєднують їх до 'F'. Я бачив C # код, що оголошували їх з підкресленням: private string _SomeString. Ви б сказали, що це конвенція? (Просто опускаю пальці ніг у C # і цікавлюся цим матеріалом).
Мар'ян Венема

1
Це неточно. Існують опубліковані конвенції про іменування для громадських членів (і громадські класи тощо).
svick

7

Про це говорять загальноприйняті конвенції .Net Framework про іменування ( v4.5 , v1.1 ). Вони не визначають стандарт для іменування локальних змінних. Вам доведеться визначитися з власною умовою для їх іменування.

Я особисто використовую camelCase і відключаю змінні учасників від імен параметрів, thisколи потрібно. Але провідні підкреслення (тобто _memberVariable) також є дійсними.


1
Саме це і є причиною використання конвенцій іменування - thisдля розрізнення локальних змінних від полів / властивостей. 5 додаткових листів кожен раз - це занадто багато імхо.
Синатр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.