c# 浅拷贝与深拷贝

浅拷贝:给对象拷贝一份新的对象。

-----只对值类型(或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

原文地址:https://www.cnblogs.com/leon032/p/2251905.html