Недавно я начал работать с Unity3D и в основном писал сценарии на C #. Поскольку я обычно программирую на Java, различия не так уж и велики, но я все же сослался на ускоренный курс, чтобы убедиться, что я на правильном пути.
Тем не менее, мое самое большое любопытство к C # заключается в том, что он использует заглавные буквы в именах своих методов (например, Java: getPrime()
C #: GetPrime()
aka: Pascal Case?). Есть ли для этого веская причина? На странице ускоренного курса я понимаю, что, по-видимому, это соглашение для .Net, и я никак не могу его изменить, но мне любопытно услышать, почему это было сделано в отличие от обычного (относительного?) Случая с верблюдом. что, скажем, Java использует.
Примечание: я понимаю, что у языков есть свои собственные соглашения о кодировании (все методы Python строчные, что также применимо в этом вопросе), но я так и не понял, почему это не формализовано в стандарт.
источник
camelCase
иPascalCase
иunderscore_case
сказать, что один из них нормальный (даже относительно нормальный), а другие нет. Как сказал @dasblinkenlight, это произвольный выбор. Единственное, что заставляет вас думать, что соглашение C # необычно, это то, что вы «обычно программируете на Java» и, таким образом, привыкли к произвольному выбору, сделанному для Java.Ответы:
Соглашения об именах представляют собой произвольный выбор их издателя. В самом языке нет ничего, что могло бы запретить вам называть ваши методы так, как вы это делаете в Java: если первый символ - это буква / подчеркивание, а все остальные символы - это буквы, цифры или подчеркивание, C # не собирается жаловаться. Однако библиотеки классов, поставляемые с .NET, следуют соглашению, которое Microsoft приняла внутренне. Microsoft также опубликовала эти рекомендации , чтобы другие могли также принять их для своих собственных библиотек классов. Несмотря на то, что вы выбираете следовать или игнорировать указания Microsoft, знакомство с вашим кодом со стороны других пользователей может пройти быстрее, если вы будете следовать тем же правилам именования.
источник
this
Ключевое слово делает то же самое. Выбор стиля практичен, даже если он может казаться чуждымВозможно, из-за влияния Паскаля / Дельфи. Создатель C # и Delphi в конце концов был одним и тем же человеком (Андерс Хейлсберг).
Соглашения по кодированию Delphi в целом совпадают с C # в этом аспекте; см. http://www.econos.de/delphi/cs.html#ObjectPascal_Procedures или http://wiki.delphi-jedi.org/index.php?title=Style_Guide#Method_Naming - совпадение?
источник
В дополнение к другим полученным ответам наличие верблюжьего падежа для методов означает, что они могут конфликтовать с именами для закрытых членов, параметров и переменных метода, которые используют верблюжий падеж для своих имен. В Java (и C # 1.0) это не очень распространено, поскольку использование делегатов неудобно и редко. В современном C # это не совсем обычное явление , но это также не неслыханно.
источник