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