public static void Run() { School school = new School() { Name = "秀尽学院", Number = 0, Student = new Student() { Name = "Joker", Age = 18 } }; Console.WriteLine("--------原始对象"); ShowSchoolInfo(school); Console.WriteLine("\n--------深拷贝方法1:序列化"); School serSchool = HelperTools.SerializableClone(school); serSchool.Name = "序列化 "; serSchool.Number = 1; serSchool.Student.Name = "Skull"; serSchool.Student.Age = 20; ShowSchoolInfo(serSchool); ShowSchoolInfo(school); Console.WriteLine("\n--------深拷贝方法2:新建对象"); School newSchool = (School)school.NewClone(); newSchool.Name = "new对象 "; newSchool.Number = 2; newSchool.Student.Name = "Panther"; newSchool.Student.Age = 22; ShowSchoolInfo(newSchool); ShowSchoolInfo(school); Console.WriteLine("\n--------浅拷贝方法1:属性反射"); School proSchool = HelperTools.PropertyClone(school); proSchool.Name = "反射 "; proSchool.Number = 3; proSchool.Student.Name = "Fox"; proSchool.Student.Age = 21; ShowSchoolInfo(proSchool); ShowSchoolInfo(school); Console.WriteLine("\n--------浅拷贝2:克隆接口"); School cloneSchool = (School)school.Clone(); cloneSchool.Name = "克隆 "; cloneSchool.Number = 4; cloneSchool.Student.Name = "Queen"; cloneSchool.Student.Age = 23; ShowSchoolInfo(cloneSchool); ShowSchoolInfo(school); Console.ReadLine(); }