浅拷贝:给对象拷贝一份新的对象。
-----只对值类型(或string类型)分配新的内存地址。
深拷贝:给对象拷贝一份全新的对象。
-----对值类型分配新的内存地址,引用类型以及引用类型的内部字段分配新的地址。
通俗讲,浅拷贝只拷贝指针的内容,深拷贝拷贝指针指向的内存块的值。
如下:
public object Clone()
{
Student B = new Student();
B.Name = this.Name;
B.Age = this.Age;
//浅拷贝
B.Class = this.Class;
//深拷贝
B.Class = new Classroom();
B.Class.Name = this.Class.Name;
B.Class.Age = this.Class.Age;
}
参考:http://wenku.baidu.com/view/cf54adfdf705cc1755270982.html