Shallow copy −
Shallow copy는 객체의 "주요" 부분을 복사하지만 내부 부분은 복사하지 않는 것을 말합니다.
"내부 개체"는 원본 개체와 복사본 간에 공유됩니다.
얕은 복사본의 문제는 두 개체가 독립적이지 않다는 것입니다. 한 개체를 수정하면 변경 사항이 다른 개체에 반영됩니다.
Deep copy −
Deep Copy는 객체의 완전히 독립적인 복사본입니다. 객체를 복사하면, 전체 개체 구조를 복사하게 됩니다.
한 개체를 수정하면 변경 사항이 다른 개체에 반영되지 않습니다.
class Program{ static void Main(string[] args){ //Shallow Copy ShallowCopy obj = new ShallowCopy(); obj.a = 10; ShallowCopy obj1 = new ShallowCopy(); obj1 = obj; Console.WriteLine("{0} {1}", obj1.a, obj.a); // 10,10 obj1.a = 5; Console.WriteLine("{0} {1}", obj1.a, obj.a); //5,5 //Deep Copy DeepCopy d = new DeepCopy(); d.a = 10; DeepCopy d1 = new DeepCopy(); d1.a = d.a; Console.WriteLine("{0} {1}", d1.a, d.a); // 10,10 d1.a = 5; Console.WriteLine("{0} {1}", d1.a, d.a); //5,10 Console.ReadLine(); } } class ShallowCopy{ public int a = 10; } class DeepCopy{ public int a = 10; }
10 10 5 5 10 10 5 10
위 내용은 얕은 복사란 무엇이며 C#의 전체 복사와 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!