深度复制与浅度复制
2014-05-06 17:53
197 查看
浅度复制:只是复制类的值类型字段和引用类型字段的引用
深度复制:即完全复制过来,不管里面的值类型字段还是引用类型字段,是构成一个全新的一模一样的对象。
代码:
引用:深度复制问题..当对象成员有很多引用成员,如何深度复制。
深度复制:即完全复制过来,不管里面的值类型字段还是引用类型字段,是构成一个全新的一模一样的对象。
代码:
[Serializable] public class PersonInfo { public string Name{get;set;} public int Age{get;set;} } [Serializable] public class Person : ICloneable { public PersonInfo PersonInfo { get; set; } public Person(PersonInfo personInfo) { this.PersonInfo = personInfo; } /// <summary> /// 浅度克隆 /// </summary> /// <returns></returns> public Person ShallowClone() { return this.MemberwiseClone() as Person; } /// <summary> /// 深度复制(实现ICloneable接口的方法) /// </summary> /// <returns></returns> public object Clone() { PersonInfo perInf = new PersonInfo { Name = this.PersonInfo.Name, Age = this.PersonInfo.Age }; Person per = new Person(perInf); return per; } /// <summary> /// 第二种深度复制 /// </summary> /// <returns></returns> public Person DeepClone() { using (var ms = new MemoryStream()) { var formatter = new BinaryFormatter(); formatter.Serialize(ms, this); ms.Position = 0; return (Person)formatter.Deserialize(ms); } } }
引用:深度复制问题..当对象成员有很多引用成员,如何深度复制。
相关文章推荐
- 类对象的深度复制,浅度复制
- C#读书笔记----浅度复制与深度复制
- java list 深度复制,浅度复制
- [No0000B9]C# 类型基础 值类型和引用类型 及其 对象复制 浅度复制vs深度复制 深入研究2
- 由struct 和class 想到的浅度复制和深度复制 c#
- C#读书笔记----浅度复制与深度复制
- java深度复制和浅度复制
- 【C#-深度复制和浅度复制的比较】
- .NET基础之深度复制和浅度复制
- 类的浅度复制和深度复制
- C# (值类型/应用类型/内存框图)与对象深度/浅度复制/系列化/反系列化)
- C#之深度复制和浅度复制
- java 深度复制与浅度复制的研究
- c#深度复制 浅度复制
- 一个关于深度复制和浅度复制的例子
- java深度复制和浅度复制
- 关于对象的深度复制和浅度复制
- c#:深度复制和浅度复制
- C# (值类型/应用类型/内存框图)与对象深度/浅度复制/系列化/反系列化)
- ASP.NET深度复制和浅度复制分析