这段代码是怎么实现的深层拷贝?(code在里面)
class Student : ICloneable
{
public string Name;
public Int32 Age;
public Student(string name, Int32 age)
{
Name = name;
Age = age;
}
public void ShowInfo()
{
Console.WriteLine("{0}'s age is {1}", Name, Age);
}
public Object Clone()
{
//实现浅拷贝
return MemberwiseClone();
}
}
class Enrollment : ICloneable
{
//定义引用类型数据成员
public List<Student> students = new List<Student>();
//定义默认构造函数
public Enrollment()
{
}
//提供实现深拷贝的私有实例创建构造函数
private Enrollment(List<Student> studentList)
{
foreach (Student s in studentList)
{
students.Add((Student)s.Clone());
}
}
public void ShowEnrollmentInfo()
{
Console.WriteLine("Students enrollment information:");
foreach (Student s in students)
{
Console.WriteLine("{0}'s age is {1}", s.Name, s.Age);
}
}
public object Clone()
{
//执行浅拷贝
//return MemberwiseClone();
//执行深拷贝
return new Enrollment(students);
}
}
...全文
相关推荐
这是一个屏幕拷贝的控件,可以实现全屏的拷贝并支持另存为位图类
这是一个屏幕拷贝的控件,可以实现全屏的拷贝并支持另存为位图类型的文件(28KB)
jQuery深拷贝Json对象简单示例
本文实例讲述了jQuery深拷贝Json对象的简单实现方法。分享给大家供大家参考,具体如下: var oldJson = { Name: 'quber', List: [1, 2, 3, 4], Obj: [ { name: 'qubernet', fun: function () { return 1; } }, { name: 'qubernet1', fun: function () { return 2; } } ] }; var newJson = $.extend(true, {}, oldJson); console.log(JSON.stringi
不同编译环境下的拷贝构造函数解决方案.zip_C++_NQW
不同编译环境下的拷贝构造函数解决方案,在vs2015和codeblock的不同
TeraCopyPortable拷贝软件
TeraCopyPortable拷贝软件: 一个可视化拷贝工具~!
JAVA 带进度条的文件拷贝程序
一个带界面的java小程序,可实现对所选任何类型的文件进行拷贝,并对此复制过程有进度条显示。代码风格良好,适合初学者借鉴。


