[C#] Shallow Copy와 Deep Copy

2022. 4. 25. 14:28·언어/C#
728x90

갑자기 드는 생각인데 영어권 사람들은 코딩 배우기가 정말정말정말 쉽겠다. 문서 찾을 때도 그냥 보고 읽으면 되니까... 부럽다.

· 얕은 복사 (Shallow Copy)

객체의 참조를 복사하는 것.

class MyClass
    {
        public int name;
        public int age;
    }
static void Main(string[] args)
    {
        MyClass myClass = new MyClass();
        myClass.name= 1;
        myClass.age= 2;

        MyClass yourClass = myClass;
        yourClass.name= 100;

        Console.WriteLine($"{myClass.name} {myClass.age}");
        Console.WriteLine($"{yourClass.name} {yourClass.age}");
    }

myClass와 yourClass가 같은 값을 갖게 된다.

​

​

​

· 깊은 복사 (Deep Copy)

별도의 메모리 영역(힙 영역)에 복사한 객체를 넣어 기존 값과 다른 새로운 객체를 만드는 것.

class MyClass
    {
        public int name;
        public int age;

        public MyClass DeepCopy()
        {
            MyClass newCopy = new MyClass();
            newCopy.name = name;
            newCopy.age = age;
            return newCopy;
        }
    }
static void Main(string[] args)
    {
        MyClass myClass = new MyClass();
        myClass.name = 1;
        myClass.age = 2;

        MyClass yourClass = myClass.DeepCopy();
        yourClass.name = 100;

        Console.WriteLine($"{myClass.name} {myClass.age}");
        Console.WriteLine($"{yourClass.name} {yourClass.age}");
    }

myClass와 yourClass가 다른 값을 갖게 된다.

728x90

'언어 > C#' 카테고리의 다른 글

[C#] temp를 사용한 자리 바꿔치기  (0) 2022.04.25
[C#] CS0122 보호 수준 때문에 액세스할 수 없습니다  (0) 2022.04.25
[C#] overloading과 overriding  (0) 2022.04.25
[C#] ReadLine 문자열 입력 받기  (0) 2022.04.25
[C#] 상수, 열거 - 가위바위보 개선  (0) 2022.04.25
'언어/C#' 카테고리의 다른 글
  • [C#] CS0122 보호 수준 때문에 액세스할 수 없습니다
  • [C#] overloading과 overriding
  • [C#] ReadLine 문자열 입력 받기
  • [C#] 상수, 열거 - 가위바위보 개선
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (239)
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    EFCore
    unity
    C언어
    Python
    EntityFramework
    네트워크
    자바
    java
    tcp
    디자인패턴
    유니티
    C#
    C
    코딩
    게임서버
    백준
    coding
    Entityfamework
    HTML
    라즈베리파이
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[C#] Shallow Copy와 Deep Copy
상단으로

티스토리툴바