這篇文章主要介紹.Net中的淺拷貝和深拷貝是什么意思,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
專注于為中小企業(yè)提供網(wǎng)站建設、成都網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)資溪免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。什么是淺拷貝?
淺拷貝會創(chuàng)建一個新對象,然后將當前對象的非靜態(tài)字段復制到新對象。如果該字段是值類型,則執(zhí)行該字段的逐位復制。如果該字段是引用類型,則復制唯一的引用,但不復制引用的對象本身;因此原始和克隆引用相同的對象。
對象的淺表副本是一個新對象,其實例變量與舊對象相同。在.Net淺拷貝是由對象方法MemberwiseClone()完成的。
如果你有一個帶有值的對象,并且你想在同一類型的另一個變量中創(chuàng)建該對象的副本,那么你可以使用淺拷貝,所有屬于值類型的屬性值都將被復制,但如果你如果具有引用類型的屬性,則不會復制此實例,而只會引用該實例。
什么是深拷貝?
深拷貝是創(chuàng)建一個新對象,然后將當前對象的字段復制到新創(chuàng)建的對象,以創(chuàng)建內(nèi)部引用類型的完整副本的過程。如果字段是值類型,則執(zhí)行字段的逐位復制。如果字段是引用類型,則執(zhí)行引用對象的新副本。
對象的深層副本是具有全新實例變量的新對象,它不與舊對象共享對象。執(zhí)行Deep Copy時,要克隆的類必須標記為[Serializable]。
深層復制旨在復制對象的所有元素,包括直接引用的值類型元素和引用類型的間接引用元素,引用類型包含對包含數(shù)據(jù)而不是包含數(shù)據(jù)本身的內(nèi)存位置的引用。
以上是“.Net中的淺拷貝和深拷貝是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!