对象之间的引用传递 之 .NET中的深拷贝和浅拷贝

时间:2021-07-24 19:54:07
1.场景
首先,场景是这样的。
有一个Person类,类中有一个类型是Car的属性用于表述,人开的车。
Car类中有一些描述诸如汽车拼盘之类的属性。基本场景就是这样。
 
2.浅拷贝
Person p1 = new Person();
p1.DaiBu = new Car(){Brand ="奥迪A6"};   //设置p1的代步工具。
 
Person p2 =new Person();
//此时我们说,发生了浅拷贝。其实就是普通的  对象间的引用传递。
p2.DaiBu = p1.DaiBu;
 
3.深拷贝
//那么什么是深拷贝呢?
Person p2 =new Person();
//这样做 就是深拷贝!
p2.DaiBu =new Car(){Brand = p1.DaiBu.Brand};

4.演示图
//那么深拷贝与浅拷贝之间有什么区别呢? 我们用一张图来说明!
对象之间的引用传递 之 .NET中的深拷贝和浅拷贝