关于浅拷贝和深拷贝的简单应用测试
来源:互联网 发布:网络歌手柔情的原名 编辑:程序博客网 时间:2024/06/16 10:37
直接上代码:这是浅拷贝
class Cloner2
{
public Content MyContent = new Content();
public Cloner2(int newval)
{
MyContent.Val = newval;
}
public object GetCopy()
{
return MemberwiseClone();
}
}
public class Content//用于上面类的引用。
{
public int Val;
}
///浅拷贝
Cloner2 mySource = new Cloner2(55);//对对象应用复制55;
Cloner2 myTarget = (Cloner2)mySource.GetCopy();//调用浅拷贝方法,拷贝给新的对象myTarget(注:浅拷贝是付给了指针,不是新空间
Console.WriteLine("Target.MyContent.Val ={0}", myTarget.MyContent.Val);
mySource.MyContent.Val = 2;//这里给拷贝后的对象复制,用来验证是否是跟前对象是同一个引用。
Console.WriteLine("myTarget.MyContent.Val ={0}", myTarget.MyContent.Val);//结果:MemberwiseClone()浅拷贝是指针,指向同一个对象。
///
Console.ReadKey();
///深拷贝:深拷贝继承接口ICloneable,并且在类里面重写Clone()方法。
class ClonerDip : ICloneable
{
public Content myContent = new Content();
public ClonerDip(int val)
{
this.myContent.Val = val;
}
public object Clone()
{
ClonerDip clonerdip = new ClonerDip(myContent.Val);
return clonerdip;
}
}
///深拷贝
ClonerDip mySource = new ClonerDip(222222);
ClonerDip myTarget = (ClonerDip)mySource.Clone();
Console.WriteLine("mySource.MyContent.Val ={0}", mySource.myContent.Val); //输出结果为:222222
Console.WriteLine("Target.MyContent.Val ={0}", myTarget.myContent.Val); //输出结果为:222222
myTarget.myContent.Val = 5555555;
Console.WriteLine("mySource.MyContent.Val ={0}", mySource.myContent.Val); //输出结果为:222222
Console.WriteLine("myTarget.MyContent.Val ={0}", myTarget.myContent.Val); ///输出结果为:5555555
///
///、、、
Console.ReadKey();
- 关于浅拷贝和深拷贝的简单应用测试
- 简单的浅拷贝和深拷贝
- 深拷贝和浅拷贝的理解与应用
- JavaScript对象的浅拷贝和深拷贝简单实现
- C++中的深拷贝和浅拷贝的简单理解
- 关于深拷贝和浅拷贝(原创)
- iOS:关于浅拷贝和深拷贝
- 关于深拷贝和浅拷贝
- 关于深拷贝和浅拷贝
- 关于浅拷贝和深拷贝
- 有一则关于深拷贝和浅拷贝的例子。
- ios关于深拷贝和浅拷贝的说明
- ios关于深拷贝和浅拷贝的说明
- 关于C#中深拷贝和浅拷贝的认识
- 关于javascript的浅拷贝和深拷贝
- 关于JavaScript的浅拷贝和深拷贝
- Map拷贝 关于对象深拷贝 浅拷贝的问题
- Map拷贝 关于对象深拷贝 浅拷贝的问题
- Intent 传值和 Bundle传值的区别
- 在ib中为button 增加的action相应UIControlEventTouchUpInside 事件
- linux input子系统
- Sql Server 2008完全卸载方法(其他版本类似)
- 二叉树镜像,递归和循环实现
- 关于浅拷贝和深拷贝的简单应用测试
- 单例模式
- 剑指Offer3 二维数据中的查找
- linux 下gtest 安装
- poj2388 快速排序 模板题
- LeetCode_Rotate List
- Cocos2d-x中的强制类型转换
- 你这磨人的小妖精
- hdu 4915 Parenthese sequence