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