2010-02-26 27 views
5

thể trùng lặp:
Cloning objects in C#Sao chép đối tượng C# cùng với tài liệu tham khảo

tôi có một đối tượng được tạo ra trong C# nói Object1. Tôi cần phải tạm thời sao lưu đối tượng này cho một đối tượng khác có tên là ObjectOriginal.

Tuy nhiên, nếu tôi làm ObjectOriginal = Object1, mọi thay đổi đối tượng 1 sẽ ảnh hưởng đến ObjectOriginal. Làm thế nào để tôi đi về điều này?

+0

hãy xem http://stackoverflow.com/questions/78536/cloning-objects-in-c – rerun

Trả lời

2

Tất cả phụ thuộc vào những gì Object1 thực sự là, tức là nó một DataTable, một String, hay cái gì khác hoàn toàn ?

Bằng viết:

object Object1 = new Thing(); 
object Object2 = Object1; 

Bạn nhận được một tài liệu tham khảo thứ hai đến đối tượng bạn khởi tạo trong dòng đầu tiên. Những gì bạn cần làm là nhìn vào "Thing" và xem nếu nó có một Sao chép, Clone hoặc tên tương tự phương pháp và sử dụng rằng:

object Object1 = new Thing(); 
object Object2 = Object1.Copy(); 

Ví dụ, Mời DataTable cả Sao chép và phương pháp Clone, nơi Sao chép bản sao cả cấu trúc của DataTable và dữ liệu và Clone chỉ sao chép cấu trúc.

0

Nếu bạn muốn một bản sao của một đối tượng, câu hỏi luôn là: Bản sao sẽ diễn ra sâu như thế nào? Điều gì sẽ xảy ra với các đối tượng trong đối tượng của tôi. Những điều này có nên được sao chép và nếu có thì điều gì sẽ xảy ra với các tham chiếu của chúng?

Để biết thêm thông tin, hãy lấy điểm xuất phát this blog post from Brad Abrams.

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