本文摘自PHP中文网,作者零下一度,侵删。
克隆对象在开发过程中经常会遇到,有些时候需要浅克隆,有些时候需要深克隆,具体它们之间有什么区别,以及实现方式有哪些,在这里总结一下。 实现深克隆有以下几种方法。
手动
代码如下:
1 2 3 4 5 6 7 8 9 10 | var user2 = new User
{
Id = user1.Id,
Name = new UserName
{
FirstName= user1.Name.FirstName,
LastName= user1.Name.LastName
}
};
|
反射
代码如下:
扩展方法:


1 | 1 public static class DeepCopyHelper 2 { 3 public static object Copy (this object obj) 4 { 5 Object targetDeepCopyObj; 6 Type targetType = obj. GetType (); 7
|
View Code
序列化
代码如下:
扩展方法:


View Code
其它还有使用表达式。
总结:
手动复制性能最好,但是遇到很复杂的类的时候,工作量很大。
反射和序列化比起来,序列化更简单。
以上就是克隆对象的方法实例教程的详细内容!
相关阅读 >>
分享一个request对象小案例
lambda表达式进行对象结合操作的实例详解
几种ria技术介绍
c# 如何生成自定义图片?c# 生成自定义图片方法
总结用表达式数调用的实例代码
属性值反序列化失败怎么解决?
分享html元素调用服务器实例
分享asp.net学习笔记(7)webpages 对象详解
简单介绍c#中list<t>对象的深度拷贝问题
c#高级编程(三)-对象和类型详解
更多相关阅读请进入《方法》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » 克隆对象的方法实例教程