DeepCloner深度复制

news/2024/10/24 11:11:47

安装:

Install-Package DeepCloner

示例代码:

using Force.DeepCloner;var personA = new Person() { Name = "张三", Address = new Address() { City = "杭州", Street = "采荷" } };
var personB = personA.DeepClone();
personA.Name = "李四";
personA.Address.City = "上海";Console.WriteLine(personA.Name);
Console.WriteLine(personA.Address.City);
Console.WriteLine(personB.Name);
Console.WriteLine(personB.Address.City);public class Person
{public string Name { get; set; }public Address Address { get; set; }
}public class Address
{public string City { get; set; }public string Street { get; set; }
}

其它示例

var clone = new { Id = 1, Name = "222" }.DeepClone();
// public class Tree { public Tree ParentTree;  }
var t = new Tree();
t.ParentTree = t;
var cloned = t.DeepClone();
Console.WriteLine(cloned.ParentTree == cloned); // True
var date = DateTime.Now;
var obj = (object)date;
obj.DeepClone().GetType(); // DateTime

浅拷贝:

var clone = new { Id = 1, Name = "222" }.ShallowClone();
public class Derived : BaseClass
{public Derived(BaseClass parent){parent.DeepCloneTo(this); // now this has every field from parent}
}
public class Base {}
public class Derived1 : Base {}
public class Derived2 : Base {}var b = (Base)new Derived1(); // casting derived to parent
var derived2 = new Derived2();
// will compile, but will throw an exception in runtime, Derived1 is not parent for Derived2
b.DeepCloneTo(derived2); 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/75402.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2025 年最佳的 Retool 开源替代方案

汇总一周产品更新日志,最新发布可以前往我们的博客查看。 NocoBase 目前更新包括两个分支:main 和 next 。 main :截止目前最稳定的版本,推荐安装此版本。 next:内测版,包含一些未发布的新特性,这个版本可能还不完全稳定,适用于开发者或测试人员,用于提前体验新功能或…

平面图形中建系 | 平面直角坐标系

在平面图形中借助建立的平面直角坐标系,通过计算解决问题前情概要 如果没有笛卡尔平面直角坐标系,那么涉及平面向量的问题只能用基向量的方法[形的角度]求解,不能用代数方法[数的角度]计算;同理如果没有空间直角坐标系的介入,立体几何中的问题也就只能从形的角度思考,而不…

国家电网某全资集团公司上线智和信通一体化监控平台

根据集团的网络现状和使用场景,智和信通采取为其采取内外网分别部署的方案,对完全隔离的两张网内的设备进行管理,在保障网络安全的前提下实现集团对IT设备的纳管需求。 国网某控股集团公司是国家电网公司全资子公司和金融资产投资管理平台。集团持有财务公司、财险、…

该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置“页面中创建关联

该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置“页面中创建关联目录该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置“页面中创建关联1. 点击左下角开始图标然后点击设置2. 点击应用3. 点击左…

AOT漫谈专题(第七篇): 聊一聊给C#打造的节点依赖图

一:背景 1. 讲故事 上一篇我们聊过AOT编程中可能会遇到的三大件问题,而这三大件问题又是考验你对AOT中节点图的理解,它是一切的原点,接下来我就画几张图以个人的角度来解读下吧,不一定对。 二:理解节点依赖图 1. 对节点的理解 按照官方的说法,构建依赖节点和GC的标记算法…

ton 通过queryId关联交易

js发起交易代码: async function sendTransaction(item, queryId) {// return false;// console.log(sendTransaction, item, address);const {beginCell,toNano,Address,TonClient,StateInit,storeStateInit,JettonMaster,Cell,} = await import("@ton/ton");const…

MD文档转幻灯片软件:Deckset MacOS电脑版Markdown文档无缝转换为演示文稿

Deckset是一款基于Mac平台的幻灯片制作软件,它允许用户将Markdown文档无缝转换为精美的演示文稿。软件内置多种主题和模板,支持自定义样式,能够满足学术或商务会议等多种需求。Deckset界面简洁直观,操作简便,支持Markdown和LaTeX语法,并提供自动布局、实时预览、演讲者笔…

火山引擎数据飞轮线上研讨会即将开启,助力消费品牌双十一造爆款

随着双十一的临近,各大品牌方的备战工作已进入紧张而有序的倒计时阶段。随着双十一的临近,各大品牌方的备战工作已进入紧张而有序的倒计时阶段。这场持续十多年的电商大促,对消费者来说是购物狂欢节,对各大品牌方来说,则是更是品牌实力与策略的比拼。面对日益激烈的市场竞…