C # дозволяє задавати параметри властивості у фігурних дужках при ініціалізації об'єкта. Це дозволяє вам вибрати, які елементи ініціалізувати, а які залишити за замовчуванням.
Конструктор, з іншого боку, виконує один єдиний блок коду з фіксованим набором параметрів. Таким чином, щоб отримати той самий ефект, вам доведеться створити кілька конструкторів, усі за допомогою різних комбінацій властивостей, які ви хочете ініціалізувати, що може бути нудно.
var x = new Person {FirstName="Homer",LastName="Simpson",Age=47};
точно рівнозначно цьому:
var x = new Person();
x.FirstName="Homer";
x.LastName="Simpson";
x.Age=47;
За винятком того, що це коротше і, мабуть, простіше на очах.
Він також дозволяє створювати такі конструкції, як ви продемонстрували у своєму запитанні, що було б дуже нудно, якби вам довелося створювати тимчасові змінні та ініціалізувати їх, як я це робив тут, перш ніж додавати їх до списку. (Ось як це раніше ви робили.) Все, не вимагаючи чітко визначеного конструктора, який приймає потрібний список параметрів, які можуть бути, а можуть і не бути доступними.
Також зауважте, що хоча конструктор може ініціалізувати властивості за допомогою приватного сетера, ця методика (як це має бути очевидно з наведеного прикладу) буде працювати лише у тому випадку, якщо у вас є загальнодоступний сеттер для цього ресурсу. Також зауважте, що мій скорочений приклад неявно називав конструктор за замовчуванням (без параметрів), який, таким чином, повинен був бути присутній.