Sử dụng mã này:C# Struct Generic Constructor
struct Foo<T1>
{
public T1 Item1 { get; private set; }
public Foo(T1 item1)
{
Item1 = item1;
}
}
tôi gặp phải lỗi này:
Backing field for automatically implemented property 'Foo.Item1' must be fully assigned before control is returned to the caller. Consider calling the default constructor from a constructor initializer.
Câu hỏi của tôi là, tại sao là tài sản Item1
không hoàn toàn giao sau khi các nhà xây dựng được gọi?
Chỉnh sửa: Đã thay đổi set
thành private set
bởi vì câu hỏi này không liên quan gì đến tính đột biến.
Đừng tạo cấu trúc có thể thay đổi được. –
Tại sao anh ta không nên? Điều đó thực sự làm cho mọi thứ trở nên đơn giản hơn rất nhiều, và có thể cải thiện hiệu suất khá nhiều trong một số trường hợp có vòng lặp chuyên sâu. Có gì sai với cấu trúc có thể thay đổi? (Điều đó cũng không trả lời câu hỏi của anh ấy.) – Mehrdad
@Lambert http://stackoverflow.com/questions/441309/why-are-mutable-structs-evil –