Tôi cần phải chuyển cấu trúc dưới dạng loại giá trị trong danh sách. Giả sử tôi có một cấu trúc mà xuất phát từ một giao diện:Thêm cấu trúc: Giao diện vào danh sách <Interface>
interface IFoo
{
...
}
struct Foo1 : IFoo { ... }
struct Foo2 : IFoo { ... }
//Some other class which contains this:
List<IFoo> listOfFoo;
Tôi biết nếu tôi đã làm điều đó như sau: IFoo foo = new Foo1()
, nó sẽ biến các giá trị vào một tài liệu tham khảo (quyền Anh).
- có các cấu trúc không được thông qua như là một tài liệu tham khảo nếu tôi thêm
Foo1
hoặcFoo2
-List<IFoo>
? - Nếu không, có an toàn không khi làm
List<object>
và chỉ thêm vào các cấu trúc này, hoặc tốt hơn là nên làm MemberwiseClone trên một lớp học?
Tôi cũng đang tìm kiếm hiệu quả, vì điều này sẽ được phát hiện va chạm trong bản đồ ô.
Một câu hỏi tham khảo: http://stackoverflow.com/questions/63671/is-it-safe-for-structs-to-implement-interfaces?rq=1 .. Và tôi sẽ đề xuất sử dụng phương pháp tiếp cận lớp học . –