Во-первых, я знаю, что этот вопрос задавался несколько раз и что, в конце концов, это в основном вопрос личных предпочтений, но, читая все темы на эту тему, некоторые вещи мне не понятны.
По сути, большинство людей согласны, по крайней мере, с тем, что публичный член должен быть PascalCased, тогда как приватный член должен быть lowerCamelCased.
Вопрос, который обычно вызывает споры, заключается в том, стоит ли префикс частных членов подчеркиванием или что-то еще. Префикс нарушает несколько правил StyleCop (которые, очевидно, могут быть отключены)
Основанием для отказа от префикса является то, что вы должны использовать это. вместо префикса.
Проблема в том, что я не понимаю, как это меняет дело?
Я имею в виду, это не значит, что вы не можете использовать это для публичного члена в любом случае внутри класса.
Давайте представим класс Customer, выглядящий так:
class Customer
{
private int age;
public int Age
{
get { return this.age; }
set { this.age = value; }
}
}
(Очевидно, в таком простом случае я мог бы использовать autoproperty, но это только пример).
Если бы я добавил второе свойство внутри этого класса, ничто не помешало бы мне ссылаться на него, используя this.Age (публичное свойство), а не this.age (приватное поле).
Иногда это может быть даже целесообразно, если на уровне получателя применяется некоторая проверка или форматирование.
Кроме того, если некоторые другие свойства моего класса необходимы для изменения возраста клиента, имеет смысл использовать свойство, а не поле поддержки напрямую, поскольку установщик может также реализовать некоторые проверки бизнес-правил, верно?
Другими словами, я действительно не понимаю, как это ключевое слово позволяет избежать путаницы между частными участниками поддержки и открытыми свойствами, так как это можно использовать в обоих случаях, а IntelliSense показывает оба?
Спасибо.