Chúng tôi sử dụng cấu trúc trong C# bất cứ khi nào có thể chủ yếu là vì nó được lưu trữ trên ngăn xếp và không có đối tượng nào được tạo cho nó. Điều này làm tăng hiệu suất.Nếu một mảng được sử dụng như một phần tử trong cấu trúc (C#), thì nó được lưu trữ ở đâu?
Mặt khác, mảng được lưu trữ trên heap.
Câu hỏi của tôi là, nếu tôi bao gồm một mảng như một yếu tố của cấu trúc, một cái gì đó như sau:
struct MotionVector
{
int[] a;
int b;
}
Sau đó, những gì sẽ là những hậu quả. Liệu mảng đó có được lưu trữ trên ngăn xếp không? Hoặc lợi thế hiệu suất của việc sử dụng struct sẽ bị mất?
http://stackoverflow.com/questions/3942721/c-structs-versus-classes –
Bạn có vấn đề về hiệu suất thực tế không? Xem http://blogs.msdn.com/b/ericlippert/archive/2009/04/27/the-stack-is-an-implementation-detail.aspx – ken2k
http://stackoverflow.com/a/1114152/55209 - Một lời giải thích tuyệt vời –