본문 바로가기

깊은 복사

[C#] 객체 복사 : 얕은 복사와 깊은 복사 3 객체 복사의 일반적인 사용 예시를 만들어 보려고 한다. 위의 클래스는 기본적인 데이터 클래스를 의도하는 testB 와 testB를 딕셔너리로 관리하는 testA 클래스를 나타낸다. testA 클래스에서는 앞서 보여준 Clone과 조금 다른 것을 알 수 있다. 본문 예시) 위의 예시는1. 본 클래스에 값을 삽입 2. 복사를 실행.3. 본 클래스의 값을 변경.4. 변경 된 값을 확인. 하는 순으로 진행 되었다. 결과는 다음과 같이 깊은 복사가 이루어 진 것을 확인 할 수 있다. 더보기
[C#] 객체 복사 : 얕은 복사와 깊은 복사 2 깊은 복사(Deep Copy)는 참조변수가 가르키는 힙 영역 객체를 복사하는 것으로 별도의 힙 영역객체를 생성한다. C# 에서 복사는 기본적으로 얕은 복사이기 때문에 깊은 복사는 별도로 구현해야 한다. 객체 복사 예시. 위의 예제는 앞서 설명한 복사를 예시로 만든 것이다. 여기서 확인 할 수 있듯이 복사 후에 원본의 값을 바꾸면 복사 대상의 값도 변경 됨을 확인 할 수 있다. 해서 다음과 같은 과정으로 깊은 복사를 해야 독립적으로 사용할 수 있다. 깊은 복사 예시 클래스. ICloneable을 상속 받으면 인터페이스로 Clone을 제공한다. 물론 상속 받지 않고 그냥 별도로 만들어도 상관없다. 해서, Clone 함수에서 내부 값을 새로이 생성한 객체에 적용하고 리턴하도록 Clone 함수를 채워준다. 깊은.. 더보기