2009-09-10 36 views
25

Tôi cần thêm thuộc tính [Serializable] vào một lớp cực kỳ nhạy cảm với hiệu năng.Việc thêm [Serializable] vào lớp có bất kỳ tác động hiệu suất nào không?

Thuộc tính này có bất kỳ tác động hiệu suất nào đối với hoạt động của lớp không?

+0

Chỉ miễn là phải mất một phiên bản của thuộc tính. Tại sao, bạn đã nhận thấy điều gì? –

+0

Tôi chỉ yêu cầu trước thời hạn, để tôi không phải tạo ra một giải pháp khác, nếu điều này có bất kỳ vấn đề về sự hoàn hảo nào. – AngryHacker

Trả lời

23

Các cá thể của các lớp thuộc tính chỉ được tạo khi chúng được truy cập lần đầu tiên. Nếu bạn không thực hiện bất kỳ sự tuần tự hóa nào trên lớp cụ thể đó, hàm tạo SerializableAttribute() sẽ không bao giờ được gọi, do đó nó sẽ không gây ra bất kỳ vấn đề hiệu suất nào.

Dưới đây là một bài viết thú vị về nhà xây dựng thuộc tính: http://www.codingonthetrain.com/2008/10/attribute-constructors.html

7

Thuộc tính là một chú thích siêu dữ liệu để họ không thêm trọng lượng cho một lớp học trong thời gian chạy, trừ khi họ được giải thích bởi thời gian chạy theo một cách nào đó mà làm cho nó đối xử với lớp khác đi.

[Serializable] chỉ đơn giản là một thuộc tính đánh dấu được sử dụng như một quy ước để chỉ ra rằng lớp được serializable, nó không có hiệu lực và thời gian chạy không xử lý các lớp theo bất kỳ cách đặc biệt nào.

Các vấn đề liên quan