Примітка. Це було опубліковано, коли я починав 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 функції нічого не роблять. Але коли я хочу реально реалізувати певну логіку геттера / сетера, я все одно повинен використовувати приватну / публічну пару.
Я бачу вигоду в тому, що я зберігаю багато коду (один проти шести рядків), не втрачаючи можливості змінити логіку геттера / сеттера пізніше, але потім знову вже можу це зробити, просто оголосивши публічне поле "Публічний заголовок рядка" без потреба {get; набір; } блок, таким чином навіть економлячи більше коду.
Отже, чого я тут пропускаю? Чому хтось насправді хотів би використовувати авто-властивості?