Nó không phải là lỗi, mà là hậu quả của cách cú pháp khởi tạo { ... }
hoạt động trong C#.
Cú pháp đó có sẵn cho bất kỳ loại bộ sưu tập nào có phương thức Add()
. Và tất cả những gì nó làm là thay thế trình tự trong dấu ngoặc đơn bằng một chuỗi các cuộc gọi đến phương thức Add()
.
Trong ví dụ của bạn, trước tiên bạn khởi tạo, trong hàm tạo, giá trị với ba phần tử đầu tiên. Sau đó, sau này, khi bạn chỉ định { 4, 5, 6 }
cho thuộc tính, hãy gọi lại Add()
bằng các giá trị đó.
Nếu bạn muốn xóa các nội dung trước đó, bạn cần phải gán với các nhà điều hành new
, như thế này:
var listTest = new ListTest()
{
MyList = new List<int> {4,5,6}
};
Bằng cách đưa các nhà điều hành new
, bạn sẽ có cả một đối tượng hoàn toàn mới, cũng như Add()
giá trị.
Nguồn
2017-08-20 05:54:47
Nhưng hoạt động được chỉ định hoạt động. Nó bằng với .add ?? –
@ L.Tim, nó _seems_ một toán tử gán, nhưng nó không phải. Nó chỉ là cú pháp cú pháp cho một vòng lặp trên các mục giữa '{}' thêm những mục đó vào một bộ sưu tập _already initialized_. –