Подтвердить что ты не робот

Каковы соглашения об именах в С#?

Есть несколько вопросов по этому вопросу, но все они, похоже, нацеливались на определенную часть языка;

Я только начинаю с С# с другом, создающим игры для XBOX Live Arcade. Я разработал ряд игр с использованием ActionScript 2 и 3, но хочу начать изучение более мощных языков и устройств.

Я хочу убедиться, что я не задумываюсь о том, с кем я начинаю работать (если я доберусь до этого), или даже просто с людьми, когда я сталкиваюсь с проблемами и задаю вопрос с серьезным нарушением/ "неправильным" наименованием методы и т.д.

Я нашел это запутанным в примере кода, который я видел, потому что, похоже, с моей нынешней точки зрения некоторые недостатки. Я сомневаюсь, что будет использовано ошибочное соглашение об именах, поэтому я понимаю, что у меня просто проблемы с пониманием.

Насколько я могу судить до сих пор, существуют следующие соглашения:

  • public Type SomeMethod()
  • private Type SomeMethod() - нет подчеркивания или чего-то еще?
  • public static Type SomeMethod()
  • private static Type _SomeMethod() - этот просто кажется странным..
  • public Type someProperty - переключить его на корпус верблюда для свойств?
  • public static Type SomeProperty - а затем вернемся к корпусу паскаля для статического режима.

В ActionScript 3 я разработал и строго придерживаюсь этих соглашений:

  • private var _someVar
  • public var someVar
  • private function _someMethod()
  • public function someMethod()
  • public static var SomeStaticVar
  • public static function SomeStaticMethod()
  • public const SOME_CONSTANT

Есть ли полный список соглашений об именах с аргументацией позади каждого, чтобы я мог окунуться в них? Отмена синтаксиса (т.е. public Type method() вместо AS3 public function method():Type) бросает меня достаточно в тот момент, когда я знаю, что мне нужно следить за тем, как я называю вещи, иначе я забуду и буду развивать вредные привычки, который я предпочел бы гвоздь и избегать сейчас.

4b9b3361

Ответ 1

От Microsoft существует Стандарты кодирования кодовых комбинаций "все-в-одном" , который содержит полный набор правил и рекомендаций. (также доступен здесь)

В этом документе описывается руководство по стилю кодирования для собственных программ С++ и .NET(С# и VB.NET), которые используются командой проекта Microsoft All-In-One Code Framework.

Ответ 2

Две основные капитализации называются camelCase и PascalCase.

Основные правила (с большим количеством вариаций)

  • Типы используют PascalCase
  • свойства и методы всегда используют PascalCase
  • публичные члены (поля, константы) используют PascalCase
  • локальные переменные используют camelCase
  • параметры используют camelCase

И хотя в документации говорится, что "Внутренние и частные поля не охватываются руководящими принципами", существуют четкие соглашения:

  • частные поля используют camelCase
  • частные поля, которые возвращают префикс свойства a _

Ответ 3

Существует множество соглашений об именах, рекомендованных Microsoft для программирования .Net. Вы можете прочитать об этих здесь.

Как правило, используйте PascalCase для общедоступного свойства, имени метода и типа.

Для параметров и локальных переменных используйте camelCase.

Для частных полей выберите один: некоторые используют camelCase, другой префикс _camelCase с _.

Общепринятое соглашение также означает имена констант с ALLCAPS.

Ответ 4

С# предпочитает PascalCasing для классов, свойств и методов.

Насколько я могу судить до сих пор, существуют следующие соглашения:

  • public Type SomeMethod() < - yes
  • private Type SomeMethod() < - correct, no undscore
  • public static Type SomeMethod() < - correct
  • private static Type _SomeMethod() < - мне это тоже кажется странным. подчеркивание не должно быть там
  • public Type someProperty < - no, публичное свойство должно быть PascalCased (SomeProperty)
  • public static Type SomeProperty - а затем вернемся к корпусу паскаля для статического режима.

Если вы используете Visual Studio или XNA Game Studio (я думаю, это вилка Visual Studio), я настоятельно рекомендую использовать лицензию ReSharper (от программного обеспечения jetbrains). Они расскажут вам в редакторе кода, как соответствовать общим соглашениям С#.

Дополнение:

Вы должны использовать camelCasing для частных полей и аргументов метода. Для частных полей я обычно добавляю их _WithAnUnderscore.