Malalim na Kopya

May -Akda: Lewis Jackson
Petsa Ng Paglikha: 8 Mayo 2021
I -Update Ang Petsa: 25 Hunyo 2024
Anonim
777Hz Luck and Prosperity ✤ Receive Wealth and Abundance
Video.: 777Hz Luck and Prosperity ✤ Receive Wealth and Abundance

Nilalaman

Kahulugan - Ano ang ibig sabihin ng Deep Copy?

Ang malalim na kopya, sa C #, ay tumutukoy sa isang pamamaraan kung saan nilikha ang isang kopya ng isang bagay na naglalaman ito ng mga kopya ng parehong mga miyembro at mga bagay na itinuro ng mga miyembro ng sanggunian.

Ang malalim na kopya ay inilaan upang kopyahin ang lahat ng mga elemento ng isang bagay, na kinabibilangan ng direktang na-refer na mga elemento (ng uri ng halaga) at ang hindi direktang na-refer na mga elemento ng isang uri ng sanggunian na humahawak ng isang sanggunian (pointer) sa isang lokasyon ng memorya na naglalaman ng data sa halip na naglalaman ng data mismo. Ang malalim na kopya ay ginagamit sa mga senaryo kung saan ang isang bagong kopya (clone) ay nilikha nang walang anumang sanggunian sa orihinal na data.


Isang Panimula sa Microsoft Azure at ang Microsoft Cloud | Sa buong gabay na ito, malalaman mo kung ano ang lahat ng cloud computing at kung paano makakatulong ang Microsoft Azure sa iyo upang lumipat at patakbuhin ang iyong negosyo mula sa ulap.

Ipinaliwanag ng Techopedia ang Deep Copy

Ang malalim na kopya ay naiiba sa mababaw na kopya sa paraang kinopya ang uri ng sangguniang sanggunian. Habang kinokopya ang mga miyembro ng larangan ng uri ng halaga sa parehong mga kaso, isinasagawa ang isang bahagyang kopya ng patlang. Kapag ang pagkopya ng mga patlang ng uri ng sanggunian, ang mababaw na kopya ay nagsasangkot sa pagkopya lamang ng sanggunian, samantalang sa malalim na kopya, ang isang bagong kopya ng tinukoy na bagay ay ginanap.

Ang malalim na kopya ay maaaring mailarawan ng isang halimbawa sa pamamagitan ng pagsasaalang-alang sa isang object ng empleyado na mayroong AddressInfo bilang isang miyembro ng uri ng sanggunian kasama ang iba pang mga miyembro ng uri ng halaga. Ang isang malalim na kopya ng Empleyado ay lumilikha ng isang bagong bagay, ang Empleyado, na may mga miyembro ng uri ng halaga na katumbas ng Empleyado ngunit ang mga sanggunian ng isang bagong bagay, ang AddressInfo2, na isang kopya ng AddressInfo.

Ang malalim na kopya ay maaaring maipatupad gamit ang alinman sa mga sumusunod na pamamaraan:


  • Maaaring ipatupad ang tagabuo ng kopya ng klase na may kinakailangang lohika para sa pagkopya ng mga miyembro ng parehong halaga at sanggunian (pagkatapos ng tamang uri ng paglalaan ng memorya). Ang pamamaraang ito ay nakakapagod at madaling kapitan ng error.
  • System.Object.MemberwiseMga pamamaraan ay maaaring magamit upang kopyahin ang mga nonstatic na miyembro ng uri ng halaga.Ang mga kopya ng mga bagay ng uri ng sanggunian ay maaaring malikha at itinalaga kasama ang parehong hanay ng mga halaga bilang orihinal
  • Ang isang bagay na kailangang malalim na makopya ay maaaring mai-serial at de-serialized ito sa isang bagong bagay sa pamamagitan ng pagpapanumbalik nito. Ang pamamaraang ito ay awtomatiko at hindi nangangailangan ng mga pagbabago sa code para sa mga pagbabago sa mga miyembro ng bagay ngunit mas mabagal kaysa sa iba pang mga pamamaraan at hinihilingang ma-serializable ang bagay na naka-clone
  • Ang pagninilay na may recursion ay maaaring magamit upang makakuha ng isang mababaw na kopya, kung saan maaaring maidagdag ang karagdagang code na kinakailangan para sa malalim na kopya. Ang pamamaraang ito ay awtomatiko at hindi nangangailangan ng mga pagbabago sa code para sa anumang karagdagan o pag-aalis ng mga patlang sa bagay. Ito ay mas mabagal at hindi pinapayagan sa bahagyang tiwala na kapaligiran
  • Maaaring gamitin ang mga pang-matagalang code ng wika, na mas mabilis ngunit nagreresulta sa pagbabawas ng code at mas mahirap na pagpapanatili

Upang ipatupad ang malalim na kopya:


  • Ang bagay ay dapat na maayos na tinukoy at hindi maaaring maging di-makatwiran
  • Ang mga katangian ng object ay hindi isasaalang-alang
  • Ang cloning ay kailangang awtomatikong may katalinuhan para sa mga espesyal na kaso (tulad ng mga bagay na naglalaman ng mga hindi pinamamahalaang sanggunian)