Dường như có rất nhiều sự nhầm lẫn về điều này, và Jon Skeet thực hiện một công việc tốt trong việc xóa nó trong cuốn sách "C# In Depth, 2nd Ed." (phần 2.3).
Cách tiếp cận cá nhân của tôi, có thể hoặc không đúng, CHỈ sử dụng cấu trúc/liệt kê (loại giá trị) để thể hiện cấu trúc dữ liệu nguyên tử, nhẹ mà tôi biết tôi sẽ sử dụng thường xuyên trong một số loại logic hoặc toán học hoạt động - hãy suy nghĩ Point
, v.v.
Bằng cách đó tôi có thể tránh được hình phạt về hiệu suất thu gom rác thải. Tuy nhiên, Jon chỉ ra trong phần đó của cuốn sách của mình rằng không có đảm bảo thực sự, đặc biệt là trong các phiên bản mới của thời gian chạy, cho dù một cái gì đó sẽ đi trên ngăn xếp ở tất cả.
Vì vậy, câu trả lời hay nhất của tôi là sử dụng những thứ như cấu trúc một cách tiết kiệm và rất ý thức về lý do bạn sử dụng chúng nếu bạn làm như vậy. Xem ra để tối ưu hóa sớm. Và đọc phần đó trong cuốn sách của Jon nếu bạn có thể đặt tay lên một bản sao, bởi vì anh ấy làm tốt công việc làm rõ toàn bộ chủ đề này.
liên quan: When to use struct?
Nguồn
2011-01-19 18:58:24
Nếu bạn không thể quyết định, nó gần như chắc chắn là một 'lớp'. Nó là cực kỳ hiếm để * hợp pháp * viết một cấu trúc. –
Đối với các lập trình viên Thổ Nhĩ Kỳ, tôi có một bài đăng trên blog về nó http://sonergonul.net/2012/12/net-icerisinde-deger-tipi-ve-referans-tipi/ –