本文摘自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
其它还有使用表达式。
总结:
手动复制性能最好,但是遇到很复杂的类的时候,工作量很大。
反射和序列化比起来,序列化更简单。
以上就是克隆对象的方法实例教程的详细内容!
相关阅读 >>
详细介绍c#实现关闭子窗口而不释放子窗口对象的方法分享
task用法之启动方法实例
memorycache问题修复的解决方法
有关.net mvc长轮询的实现方法
使用一个wpf程序起调一个uwp程序
分享一个request对象小案例
属性值反序列化失败怎么解决?
lambda表达式进行对象结合操作的实例详解
几种ria技术介绍
c#高级编程(三)-对象和类型详解
更多相关阅读请进入《方法》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » 克隆对象的方法实例教程