详细请参考 链接一文搞懂C#中的赋值、深复制、浅复制
1、赋值即用“=”,赋值和深度复制,浅度复制完全是不同的概念,并没有什么关系,很多文章说赋值对于值类型是深度复制,对于引用类型是浅度复制,这种说法是不正确的,它的本质是在线程栈上产生一样的副本。
2、浅度复制,比如使用MemberwiseClone
。值类型成员独立,但是引用类型成员共享。
3、深度复制,主要优化Clone
方法;值类型成员和引用类型成员都是独立的,即完完全全的一个全新的副本,称之为深度复制。
详细请参考 链接一文搞懂C#中的赋值、深复制、浅复制
1、赋值即用“=”,赋值和深度复制,浅度复制完全是不同的概念,并没有什么关系,很多文章说赋值对于值类型是深度复制,对于引用类型是浅度复制,这种说法是不正确的,它的本质是在线程栈上产生一样的副本。
2、浅度复制,比如使用MemberwiseClone
。值类型成员独立,但是引用类型成员共享。
3、深度复制,主要优化Clone
方法;值类型成员和引用类型成员都是独立的,即完完全全的一个全新的副本,称之为深度复制。