얕은 복사란 무엇이며 C#의 전체 복사와 어떻게 다릅니까?

王林
풀어 주다: 2023-09-06 19:41:09
앞으로
607명이 탐색했습니다.

什么是浅复制以及它与 C# 中的深复制有何不同?

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;
}
로그인 후 복사

Output

10 10
5 5
10 10
5 10
로그인 후 복사

위 내용은 얕은 복사란 무엇이며 C#의 전체 복사와 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿