C # memungkinkan Anda untuk menentukan parameter properti dalam kurung kurawal ketika objek diinisialisasi. Ini memungkinkan Anda untuk memilih dan memilih item mana yang akan diinisialisasi dan yang akan dibiarkan sebagai default.
Sebaliknya, konstruktor menjalankan satu blok kode tunggal dengan seperangkat parameter tetap. Jadi untuk mendapatkan efek yang sama, Anda harus membuat banyak konstruktor dengan berbagai kombinasi properti yang mungkin ingin Anda inisialisasi, yang mungkin membosankan.
var x = new Person {FirstName="Homer",LastName="Simpson",Age=47};
persis sama dengan ini:
var x = new Person();
x.FirstName="Homer";
x.LastName="Simpson";
x.Age=47;
Kecuali bahwa itu lebih pendek dan bisa dibilang lebih mudah di mata.
Ini juga memungkinkan untuk konstruksi seperti yang Anda tunjukkan dalam pertanyaan Anda, yang akan sangat membosankan jika Anda harus membuat variabel sementara dan menginisialisasi mereka seperti yang saya lakukan di sini sebelum menambahkannya ke daftar. (Begitulah cara Anda dulu harus melakukannya.) Semua tanpa memerlukan konstruktor yang didefinisikan secara eksplisit yang mengambil daftar parameter yang Anda inginkan, yang mungkin atau mungkin tidak tersedia.
Juga, perhatikan bahwa sementara konstruktor dapat menginisialisasi properti dengan setter pribadi, teknik ini (seperti yang seharusnya jelas dari contoh yang diberikan) hanya akan berfungsi jika Anda memiliki setter publik untuk properti. Juga perhatikan bahwa contoh singkat saya secara implisit disebut konstruktor default (parameterless), yang karenanya harus ada.