Avatar ·

如何在.NET (C#)中正确进行对象的深拷贝?

大家好!我是一名初学C#的开发者,遇到了对象复制的问题。我有一个Person类,其中包含多个嵌套对象,例如Address。当我尝试通过简单赋值来复制对象时,得到的是对同一对象的引用,而不是它的副本。当修改“副本”的属性时,原始对象也会被改变。 以下代码示例说明了这个问题: ```csharp public class Address { public string City { get; set; } public string Street { get; set; } } public class Person { public string Name { get; set; } public int Age { get; set; } public Address Address { get; set; } } // 使用 var original = new Person { Name = "伊万", Age = 30, Address = new Address { City = "莫斯科", Street = "特维尔大街" } }; // 问题:这是浅拷贝 var copy = original; copy.Name = "彼得"; copy.Address.City = "圣彼得堡"; Console.WriteLine(original.Name); // 伊万 (良好