달력

1

« 2020/1 »

  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  


 

 

객체 복사하기

객체를 복사하는 방법에는 얕은 복사와 깊은 복사가 있습니다.


 

 

얕은 복사

static void Main(string[] args)

{

    //참조값만 복사

    MyClass source = new MyClass();

 

     //객체의 얕은 복수

    MyClass target = source; 

}

 

 

 

깊은 복사

static void Main(string[] args)

{

    //원본 객체와 별도의 객체를 할당

     MyClass source = new MyClass();

 

     //객체의 깊은 복수

     MyClass target = source.DeepCopy();         

}

class MyClass

{

    public int member_filed1;

    public int member_filed2;

 

    //깊은 복사를 수행하는 코드를 직접 작성

    public MyClass DeepCopy()

    {

        MyClass deepCopyClass = new MyClass();

       deepCopyClass.member_filed1 = this.member_filed1;

       deepCopyClass.member_filed2 = this.member_filed2;

 

        return deepCopyClass;

    }

}

 

 

 

얕은 복사 vs 깊은 복사

얕은 복사

(Shallow Copy)

·         참조값만 복사

·         동일한 객체를 가리킴

깊은 복사

(Deep Copy)

·         객체 복사

·         원본 객체와 별도의 객체를 할당(서로 다른 객체를 가리킴)

 

객체 생성


 

얕은 복사

(Shallow Copy)


 

깊은 복사

(Deep Copy)


 

 

 

Posted by codedragon codedragon

댓글을 달아 주세요