C # cho phép bạn chỉ định các tham số thuộc tính trong dấu ngoặc nhọn khi đối tượng được khởi tạo. Điều này cho phép bạn chọn và chọn mục nào để khởi tạo và mục nào để mặc định.
Mặt khác, một hàm tạo, chạy một khối mã với một bộ tham số cố định. Vì vậy, để có được hiệu ứng tương tự, bạn phải tạo nhiều hàm tạo với tất cả các kết hợp thuộc tính khác nhau mà bạn có thể muốn khởi tạo, điều này có thể rất tẻ nhạt.
var x = new Person {FirstName="Homer",LastName="Simpson",Age=47};
hoàn toàn tương đương với điều này:
var x = new Person();
x.FirstName="Homer";
x.LastName="Simpson";
x.Age=47;
Ngoại trừ việc nó ngắn hơn và dễ nhìn hơn trên mắt.
Nó cũng cho phép các cấu trúc như bạn thể hiện trong câu hỏi của bạn, sẽ rất tẻ nhạt nếu bạn phải tạo các biến tạm thời và khởi tạo chúng như tôi đã làm ở đây trước khi thêm chúng vào danh sách. (Đó là cách bạn đã từng phải làm điều đó.) Tất cả mà không yêu cầu một nhà xây dựng được xác định rõ ràng có danh sách các tham số mong muốn của bạn, có thể có hoặc không có sẵn.
Ngoài ra, lưu ý rằng trong khi một nhà xây dựng có thể khởi tạo các thuộc tính với một setter tin, kỹ thuật này (như nên được rõ ràng từ các ví dụ được cung cấp) sẽ chỉ làm việc nếu bạn có một setter nào cho bất động sản. Cũng lưu ý rằng ví dụ rút gọn của tôi được gọi ngầm là hàm tạo mặc định (không tham số), do đó sẽ phải có mặt.