
浅拷贝 −
浅拷贝是指拷贝一个对象的”主要”部分,但不拷贝内部的部分objects.
The “inner objects” are shared between the original object and its copy.
The problem with the shallow copy is that the two objects are not independent. If you修改一个对象,改变将会反映在另一个对象中。
深拷贝 −
深拷贝是一个完全独立的对象副本。如果我们复制了我们的对象,would copy the entire object structure.
If you modify the one object, the change will not be reflected in the other object.
Example
class Program{ static void Main(string[] args){ //Shallow Copy ShallowCopy obj = new ShallowCopy(); obj.a = 10; ShallowCopy obj1 = new ShallowCopy(); obj1 = obj; Console.WriteLine("{0} {1}", obj1.a, obj.a); // 10,10 obj1.a = 5; Console.WriteLine("{0} {1}", obj1.a, obj.a); //5,5 //Deep Copy DeepCopy d = new DeepCopy(); d.a = 10; DeepCopy d1 = new DeepCopy(); d1.a = d.a; Console.WriteLine("{0} {1}", d1.a, d.a); // 10,10 d1.a = 5; Console.WriteLine("{0} {1}", d1.a, d.a); //5,10 Console.ReadLine(); }}class ShallowCopy{ public int a = 10;}class DeepCopy{ public int a = 10;}
输出
10 105 510 105 10
以上就是什么是浅复制以及它与 C# 中的深复制有何不同?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1435198.html
微信扫一扫
支付宝扫一扫