Tôi đang cố gắng chuyển đổi từ C sang C# và tôi có một số câu hỏi về cách lưu đối tượng vào các tệp và tuần tự hóa. Trong C nếu bạn muốn lưu cấu trúc dữ liệu, tôi đã được dạy rằng lưu nó ở định dạng văn bản dưới dạng chuỗi thường không cần thiết và tệp nhị phân tồn tại dưới dạng ảnh chụp nhanh thường tốt hơn vì nó không có t cần mã hóa/giải mã và chuỗi phù hợp với các trường. Trong C# cách tiếp cận có vẻ khác, nó chuyển đổi các trường đối tượng riêng biệt thành một chuỗi hoặc một số định dạng khác và sau đó nó xây dựng lại đối tượng khi cần thiết. Tôi không chắc chắn làm thế nào serialization nhị phân hoạt động nhưng tôi nghĩ rằng nó sill chuyển đổi dữ liệu sang một số định dạng và không tồn tại như một ảnh chụp bộ nhớ không định dạng tinh khiết.Lưu các đối tượng/serialization
Tại sao phương pháp "chụp nhanh bộ nhớ" mà không có bất kỳ mã hóa/giải mã nào không được sử dụng trong C#? Lý do duy nhất tôi có thể nghĩ là khả năng tương thích với các mã và môi trường khác, và có lẽ nó phải làm với sự phức tạp của các đối tượng so với các cấu trúc thông thường.
Điều gì sẽ xảy ra nếu đối tượng có các thuộc tính phức tạp, không chỉ các loại giá trị; sau đó mỗi "phần" của đối tượng sẽ được lưu trữ trên một vị trí bộ nhớ khác; các đối tượng này cũng có thể bao gồm các đối tượng khác. Chỉ là một dự đoán đơn giản nhưng nó sẽ thực sự phức tạp để thực hiện một logic như vậy để lưu các đối tượng. – daryal
Một trong những giảm chi phí và lợi ích lớn nhất cho năng suất là sự trừu tượng của bộ nhớ và phần cứng nói chung của .NET. Nếu bạn cần phải kiên trì với các yêu cầu cơ bản, hãy để khung công tác xử lý việc nâng hạng nặng (thường là như vậy) và đánh dấu lớp của bạn bằng [Serializable] và sử dụng các lớp có sẵn trong System.Runtime.Serialization.Formatters.Binary. – Michael