Cuprins:
Definiție - Ce înseamnă Shallow Copy?
O copie superficială, în C #, este procesul de creare a unei clone a unui obiect prin instiințarea unei noi instanțe de același tip ca obiectul original și copierea membrilor nestatici ai obiectului existent în clonă. Membrii tipului valoric sunt copiați bit cu bit, în timp ce membrii tipului de referință sunt copiați astfel încât obiectul referit și clona sa se referă la același obiect.
În general, o copie superficială este utilizată atunci când performanța este una dintre cerințe, împreună cu condiția ca obiectul să nu fie mutat în întreaga aplicație. Prin trecerea clonei care conține date imuabile, se elimină posibilitatea corupției prin orice cod. Copia superficială se dovedește a fi eficientă în cazul în care referințele obiectelor permit trecerea obiectelor prin adresă de memorie, astfel încât întregul obiect nu trebuie copiat.
Copie superficială este, de asemenea, cunoscută sub numele de copie de membru.
Techopedia explică Shallow Copy
Copie superficială este similară copiei profunde din alocarea fiecărui membru al unui obiect față de cel al unui alt obiect, dar diferă în modul în care este copiat câmpul de tip de referință. Spre deosebire de copia superficială în care se copiază doar referința, în copie profundă, se creează o nouă copie a obiectului referit.
De exemplu, luați în considerare un obiect angajat care conține detalii despre informații personale, inclusiv o listă de obiecte de adresă care stochează mai multe adrese ale angajaților. Prin efectuarea unei copii superficiale a unui obiect angajat, o clonă a obiectului angajat poate fi creată cu referiri la aceeași listă de obiecte de adresă care sunt deținute de obiectul angajat inițial.
Metodele de a efectua o copie superficială includ:- Apelați metoda MemberwiseClone a obiectului
- Creați manual o clonă printr-o metodă personalizată care este obositoare, dar ușor de controlat
- Folosiți o tehnică de reflecție care oferă facilitatea automatizată pentru a efectua o copie superficială, dar cu performanță deasupra capului
- Utilizați o metodă de serializare mai lentă decât reflecția, dar automatizată și simplă
