public class Student
{
public int Age { get; set; }
public string Name { get; set; }
public Student Clone()
{
Student student = new Student();
student.Age = this.Age;
student.Name = this.Name;
return student;
}
}
Student student = new Student();
student.Age = 10;
student.Name = "小王";
Console.WriteLine($"student,age={student.Age },name={student.Name }");
Student student1 = student ;//浅克隆
student1.Age = 15;
student1.Name = "小翟";
Console.WriteLine($"student,age={student.Age },name={student.Name },student2,age={student1.Age },name={student1.Name }");
Student student2 = JsonConvert.DeserializeObject<Student>(JsonConvert.SerializeObject(student));//深克隆
student2.Age = 20;
student2.Name ="小李";
Console.WriteLine($"student,age={student.Age },name={student.Name },student2,age={student2.Age },name={student2.Name }");
Student student3 = student.Clone();//深克隆
student3.Age = 40;
student3.Name = "小宋";
Console.WriteLine($"student,age={student.Age },name={student.Name },student3,age={student3.Age },name={student3.Name }");
输出
student,age=10,name=小王
student,age=15,name=小翟,student2,age=15,name=小翟
student,age=15,name=小翟,student2,age=20,name=小李
student,age=15,name=小翟,student3,age=40,name=小宋
从上面也可以看出使用JsonConvert是比较快的实现深克隆的方法。