C# 딥 카피 방법

2104 단어 딥 카피

먼저 아래 깊이 및 얕은 복제의 정의를 살펴보십시오.


얕은 복사(그림자 복제): 대상의 기본 유형만 복제하고 대상 유형은 원래의 인용에 속한다.깊이 복제(깊이 복제): 복제된 대상의 기본 클래스와 원 대상의 대상을 복제하지 않습니다.완전히 새로운 대상이 만들어진 거야.C#에서 전체 복제의 기본 유형을 복제합니다.인용 형식에 대해서는 인용 바늘만 복사합니다.그래서 이를 깊이 있게 복사하는 것도 번거롭다. ICloneable 인터페이스의 Clone을 실현하는 방법이다.물론 다른 빠른 방법도 있습니다. 다음은 인터넷에서 찾은 코드입니다.하나의 대상을 binary stream으로 서열화한 다음에 그것을 새로운 대상으로 반서열화하면 깊은 복사를 실현할 수 있다.코드는 다음과 같습니다.
 1 public static T CloneOf<T>(T serializableObject)
 2       {
 3           object objCopy = null;
 4 
 5           MemoryStream stream = new MemoryStream();
 6           BinaryFormatter binFormatter = new BinaryFormatter();
 7           binFormatter.Serialize(stream, serializableObject);
 8           stream.Position = 0;
 9           objCopy = (T) binFormatter.Deserialize(stream);
10           stream.Close();
11           return (T) objCopy;
12 
13         }

좋은 웹페이지 즐겨찾기