您好,登录后才能下订单哦!
这篇文章主要介绍.Net中的浅拷贝和深拷贝是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
什么是浅拷贝?
浅拷贝会创建一个新对象,然后将当前对象的非静态字段复制到新对象。如果该字段是值类型,则执行该字段的逐位复制。如果该字段是引用类型,则复制唯一的引用,但不复制引用的对象本身;因此原始和克隆引用相同的对象。
对象的浅表副本是一个新对象,其实例变量与旧对象相同。在.Net浅拷贝是由对象方法MemberwiseClone()完成的。
如果你有一个带有值的对象,并且你想在同一类型的另一个变量中创建该对象的副本,那么你可以使用浅拷贝,所有属于值类型的属性值都将被复制,但如果你如果具有引用类型的属性,则不会复制此实例,而只会引用该实例。
什么是深拷贝?
深拷贝是创建一个新对象,然后将当前对象的字段复制到新创建的对象,以创建内部引用类型的完整副本的过程。如果字段是值类型,则执行字段的逐位复制。如果字段是引用类型,则执行引用对象的新副本。
对象的深层副本是具有全新实例变量的新对象,它不与旧对象共享对象。执行Deep Copy时,要克隆的类必须标记为[Serializable]。
深层复制旨在复制对象的所有元素,包括直接引用的值类型元素和引用类型的间接引用元素,引用类型包含对包含数据而不是包含数据本身的内存位置的引用。
以上是“.Net中的浅拷贝和深拷贝是什么意思”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。