Я получаю много критики от других программистов из-за того, что я использую полный надлежащий регистр для всех моих переменных. Например, ваш типичный программист будет использовать employeeCount
для имени переменной, но я использую EmployeeCount
. Я использую полный надлежащий регистр для всего , будь то метод void, метод возврата, переменная, свойство или константа. Я даже следую этому соглашению в Javascript. Последний действительно шуршит людьми.
Типичная причина, по которой я не должен следовать этому «нестандартному» соглашению о оболочках, заключается в том, что для свойств и методов void следует зарезервировать полный надлежащий регистр. Локальная переменная и методы, которые возвращают значение, должны иметь первое слово в нижнем регистре, как int employeeCount = getEmployeeCount()
.
Однако я не понимаю, почему.
Когда я подвергаю сомнению это, кажется, что я просто получаю произвольный ответ, что это стандарт . Каким бы ни был ответ, обычно он сводится к тому , что так оно и есть, и я не подвергаю сомнению это. Я просто следую за этим. , Произвольные ответы никогда не были достаточно хороши для меня.
С тех пор, как я начал программировать макросы Excel 97 с помощью Office IDE, я никогда не нуждался в соглашении о регистре, чтобы сказать мне, является ли что-то локальной переменной или свойством. Это потому, что я всегда использовал очень интуитивное соглашение об именах. Например, GetNuggetCount()
ясно предлагает метод, который идет куда-то и получает счет всех самородков. SetNuggetCount(x)
предполагает, что вы присваиваете новое значение количеству слепков. NuggetCount
само по себе предлагает свойство или локальную переменную, которая просто содержит значение. На этот последний может возникнуть соблазн сказать: «Ага! Вот в чем вопрос. Свойство или переменная? ЧТО ЭТО?» На это я бы ответил: «Это действительно имеет значение?»
Итак, вот tl; dr ;: Каковы объективные, логические, не произвольные причины использовать строчные буквы для первого слова в вашей переменной или методе возврата?
Изменить: для MainMa
Замените этот код первым примером кода в своем ответе и посмотрите, насколько хорошо ваш аргумент выдерживает:
public void ComputeMetrics()
{
const int MaxSnapshots = 20;
var Snapshots = this.LiveMeasurements.IsEnabled ?
this.GrabSnapshots(MaxSnapshots, this.cache) :
this.LoadFromMemoryStorage();
if (!Snapshots.Any())
{
this.Report(LogMessage.SnapshotsAreEmpty);
return;
}
var MeasurementCount = Measurements.Count();
this.Chart.Initialize((count + 1) * 2);
foreach (var s in Snapshots)
{
this.Chart.AppendSnapshot(s);
}
}