对象之间的引用传递 之 .NET中的深拷贝和浅拷贝
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.演示图
//那么深拷贝与浅拷贝之间有什么区别呢? 我们用一张图来说明!
作者:大黑兔
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步