本文章主要是讲解c# 语言编程中,深度复制和浅度复制,下面我将通过一个实例进行讲解。在实例开发之前,我们得先知道深度复制是什么和浅度复制是什么,它们之间的区别又是什么,下面将为大家一一揭晓。
1.深度复制是什么?
深度复制就是引用类型的复制。
2.浅度复制是什么?
浅度复制是值类型的复制。
以下是c#中深度复制和浅度复制的实例代码引用片段:
using system; using system.collections.generic; using system.text; namespace test { public class content { public int val; } //此处若是深度复制才继承icloneable接口 //public class cloner : icloneable public class cloner { public content mycontent = new content(); public cloner(int newval) { mycontent.val = newval; } //浅度复制 //使用system.object.memberwiseclone()进行浅度复制,使用getcopy方法. public object getcopy() { return memberwiseclone(); } //深度复制: public object clone() { cloner clonedcloner = new cloner(mycontent.val); //此处是实例化一个对象 return clonedcloner; } } } //主函数 using system; using system.collections.generic; using system.text; namespace test { class program { static void main(string[] args) { cloner mysource = new cloner(5); cloner mytarget = (cloner)mysource.getcopy();//深度为cloner console.writeline("mytarget.mycontent.val={}",mytarget.mycontent.val); mysource.mycontent.val = 2; console.writeline("mytarget.mycontent.val={}", mytarget.mycontent.val); } } }
通过简单的实例开发,大家对深度复制和浅度复制是不是有了大概的了解了,以后再有相关的内容介绍会在和大家分享哦
如对本文有疑问, 点击进行留言回复!!
使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析
网友评论