深拷贝与浅拷贝

  今天在看设计模式的时候遇到深拷贝和浅拷贝一词,不太理解。通过查阅资料后大概得出如下解释。

  1.深拷贝是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。

  2.浅拷贝是指源对象与拷贝对象共用一份实体,仅仅是引用的变量不同。对其中任何一个对象的改动都会影响另外一个对象。

代码如下:

  

public class ChuiFeng
{
public ChuiFeng LightCopy()
{
return (ChuiFeng)this.MemberwiseClone();
}

public ChuiFeng DeepCopy()
{
ChuiFeng colorPrototype;

MemoryStream memoryStream
= new MemoryStream();
BinaryFormatter formatter
= new BinaryFormatter();

formatter.Serialize(memoryStream,
this);
memoryStream.Position
= 0;

colorPrototype
= (ChuiFeng)formatter.Deserialize(memoryStream);

return colorPrototype;

}
}
原文地址:https://www.cnblogs.com/chuifeng/p/1884741.html