Примечание. Это было опубликовано, когда я начинал С#. Имея знания 2014 года, я могу действительно сказать, что авто-свойства являются одними из лучших вещей, которые когда-либо случались с языком С#.
Я использую для создания своих свойств в С# с помощью частного и публичного поля:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
Теперь, .NET 3.0, мы получили авто-свойства:
public string Title { get; set; }
Я знаю, что это более философские/субъективные вопросы, но есть ли причина использовать эти автоматические свойства, кроме сохранения пяти строк кода для каждого поля? Моя личная проблема в том, что эти свойства скрывают от меня вещи, и я не являюсь большим поклонником черной магии.
Фактически, скрытое частное поле даже не появляется в отладчике, что в порядке, учитывая тот факт, что функции get/set ничего не делают. Но когда я хочу фактически реализовать некоторую логику getter/setter, я все равно должен использовать частную/общедоступную пару.
Я вижу преимущество в том, что я сохраняю много кода (один против шести строк), не теряя возможности изменить логику getter/setter позже, но потом я уже могу это сделать, просто объявив публичное поле "Public string" Название "без необходимости {get; задавать; }, тем самым даже сохраняя больше кода.
Итак, что мне здесь не хватает? Почему кто-то действительно хочет использовать авто-свойства?