本文摘自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
其它还有使用表达式。
总结:
手动复制性能最好,但是遇到很复杂的类的时候,工作量很大。
反射和序列化比起来,序列化更简单。
以上就是克隆对象的方法实例教程的详细内容!
相关阅读 >>
实现asp.net返回上一页有哪些实例?
task用法之启动方法实例
分享asp.net学习笔记(7)webpages 对象详解
简单介绍c#中list<t>对象的深度拷贝问题
使用一个wpf程序起调一个uwp程序
c#中实现复制与删除文件的方法
memorycache问题修复的解决方法
uwp中设置控件样式四种方法
c# 如何生成自定义图片?c# 生成自定义图片方法
lambda表达式进行对象结合操作的实例详解
更多相关阅读请进入《方法》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » 克隆对象的方法实例教程