Khái niệm Deep Copy và Shallow Copy trong C# là gì?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
276 lượt xem
C#/.Net master
  • Shallow Copy: tạo một đối tượng mới và sau đó sao chép các thuộc tính kiểu giá trị của đối tượng được sao chép sang đối tượng mới. Nhưng khi thuộc tính là kiểu tham chiếu, thì chỉ có tham chiếu là được sao chép chứ không phải bản thân đối tượng được thuộc tính đó tham chiếu đến. Do đó thuộc tính kiểu tham chiếu của bản gốc và bản sao đều tham chiếu đến cùng một đối tượng. Khái niệm này sẽ rõ ràng hơn khi bạn nhìn thấy sơ đồ của Shallow Copy.

PhongvanIT.com

  • Deep Copy: nó là một quá trình tạo một đối tượng mới và sau đó sao chép các thuộc tính của đối tượng được sao chép sang đối tượng mới để tạo một bản sao hoàn chỉnh của các kiểu tham chiếu bên trong, vì điều này, chúng ta cần cấu hình đối tượng được trả về bằng phương thức MemberwiseClone(). Nếu thuộc tính được sao chép là một kiểu giá trị, thì một bản sao từng bit của thuộc tính đó sẽ được thực hiện. Nếu thuộc tính được sao chép là một kiểu tham chiếu, thì đối tượng được thuộc tính đó tham chiếu đến sẽ được sao chép.

PhongvanIT.com

{{login.error}}