获得徽章 0
- #每天一个知识点#
第一类、针对简单引用类型方式
这类方法只对简单引用类型有效,如果类型中包含引用类型的属性字段,则无效。
1、MemberwiseClone方法
2、with表达式
第二类、手动方式
这类方法都是需要手动处理的,简单又复杂。
1、纯手工
2、ICloneable接口
第三类、序列化方式
这类方法核心思想就是先序列化再反序列化,这里面也可以分为三小类:二进制类、Xml类、Json类。
1、二进制序列化器
1.1.BinaryFormatter(已弃用)
1.2.MessagePackSerializer
2、Xml序列化器
2.1. DataContractSerializer
2.2. XmlSerializer
3、Json序列化器
第四类、第三方库方式
这类方法使用简单,方案成熟,比较适合项目上使用。
1、AutoMapper
2、DeepCloner
3、FastDeepCloner
第五类、扩展视野方式
这类方法都是半成品方法,仅供参考,提供思路,扩展视野,不适合项目使用,当然你可以把它们完善,各种特殊情况问题都处理好也是可以在项目上使用的。
1、反射
2、Emit
3、表达式树展开赞过评论1 - #每日精选文章# 新鲜出炉《C#|.net core 基础 - 值传递 vs 引用传递》点我首页即可查看。
C#中值传递与引用传递的概念及其对值类型和引用类型变量的影响。值传递创建参数副本,不影响原变量;引用传递共享内存地址,方法内修改影响原变量。特别提到string视为值类型处理,C#中ref、out等修饰符可实现引用传递。展开评论点赞 - 新鲜出炉《LeetCode题集-4 - 寻找两个有序数组的中位数,图文并茂,六种解法,万字讲解》赞过评论1
- #每天一个知识点# 《Redis 入门 - 五大基础类型及其指令》新鲜出炉,快到我主页看吧,等人赞过64
- #挑战每日一条沸点# 在.NET Core中Serilog日志是不错的选择,简单易用,好扩展,结构化做的也不错,但是官网是英文版本的,因此翻译成中文版本供大家查阅,感兴趣的看我主页《Serilog文档翻译系列》系列文章。赞过12