Я собираюсь работать над небольшим количеством кода С# самостоятельно, но я хочу убедиться, что я следую наиболее широко принятым соглашениям об именах на случай, если я захочу привлечь других разработчиков, выпустить мой код или продать свой код. Прямо сейчас я следую соглашению об именах, которое Microsoft установило, поскольку они кажутся наиболее широко принятыми. Единственная вещь, которую они не упоминают, это названия частных полей. По большей части я видел их имена в CamelCase, как защищенные поля, однако это вызывает у меня проблему, поскольку имена параметров должны быть в camelCase. Возьмите следующий конструктор, например:
public GameItem(string baseName, string prefixName, string suffixName)
{
//initialize code
}
Теперь, если я использую camelCase для приватных полей, возникает конфликт имен, если только я не использую "this" для доступа к полям класса (что, я думаю, противоречит большинству стандартов, не говоря уже о том, чтобы больше печатать). Одно из решений состоит в том, чтобы дать параметру другое имя, но это не имеет логического смысла давать одинаковые данные двум различным именам. Единственное другое известное мне решение, которое было распространено в кодировании C++, - это дать частным членам подчеркивание в начале (_camelCase). Является ли это решение общепринятым в кодировании С#? Есть ли другое решение этой проблемы (например, использование только свойств (которые используют PascalCase) для доступа к полям, даже в самом классе)?