Innholdsfortegnelse:
Definisjon - Hva betyr grunn kopi?
Grunne kopier, i C #, er prosessen med å lage en klon av et objekt ved å instantisere en ny forekomst av samme type som originalobjekt og kopiere de ikke-statiske medlemmene av det eksisterende objektet til klonen. Medlemmene av verditypen kopieres bit for bit, mens medlemmene av referansetypen kopieres slik at det refererte objektet og klonen refererer til det samme objektet.
Generelt brukes grunne kopier når ytelsen er et av kravene sammen med betingelsen om at objektet ikke blir mutert gjennom hele applikasjonen. Ved å sende klonen som inneholder uforanderlige data, elimineres muligheten for korrupsjon ved hvilken som helst kode. Grunnkopi viser seg å være effektiv der objektreferanser tillater objekter å bli ført rundt av minneadressen slik at hele objektet ikke trenger å kopieres.
Grunne kopier er også kjent som medlemsvis kopi.
Techopedia forklarer Shallow Copy
Grunne kopier ligner på dyp kopi i tildelingen av hvert medlem av et objekt til det til et annet objekt, men det skiller seg ut på den måten referansefeltet kopieres på. I motsetning til i grunne kopier der referansen bare kopieres, opprettes i en kopi en ny kopi av det refererte objektet.
Vurder for eksempel et ansattes objekt som inneholder detaljer om personlig informasjon, inkludert en liste over adresseobjekter som lagrer flere ansattes adresser. Ved å utføre en grunne kopi av et ansatttsobjekt, kan det opprettes en klone av medarbeiderobjektet med referanser til den samme listen over adresseobjekter som eies av det opprinnelige medarbeidersobjektet.
Metodene for å utføre grunne kopier inkluderer:- Ring MemberwiseClone-metoden til objektet
- Lag en klon manuelt gjennom en tilpasset metode som er kjedelig, men lett å kontrollere
- Bruk en refleksjonsteknikk som gir automatisert anlegg for å utføre grunne kopier, men med ytelse overhead
- Bruk en serialiseringsmetode som er tregere enn refleksjon, men automatisert og enkel
