浅拷贝:
当针对一个对象浅拷贝的时候,对于对象的值类型成员,会复制其本身,对于对象的引用类型成员,仅仅复制对象引用,这个引用指向托管堆上的对象实例。
深拷贝:
对引用成员指向的对象也进行复制,在托管堆上赋值原先对象实例所包含的数据,再在托管堆上创建新的对象实例。
public static T CreateDeepCopy<T>(T obj)
{
T t;
MemoryStream memoryStream = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(memoryStream, obj);
memoryStream.Position = 0;
t = (T)formatter.Deserialize(memoryStream);
return t;
}

本文详细介绍了浅拷贝和深拷贝的概念,重点解析了两者的区别。浅拷贝只复制对象的值类型成员,而引用类型成员则共享同一个引用。深拷贝则对引用成员指向的对象也进行复制,确保创建全新的对象实例。文中提供了一个使用BinaryFormatter实现深拷贝的C#示例代码。
3438

被折叠的 条评论
为什么被折叠?



