제네릭의 제네릭 목록의 효율적인 복제 : -Depth Analysis
질문 진술 :
C#에서 일반 객체 목록을 고도로 클로닝하는 방법은 무엇입니까? 목록의 단일 객체는 복제되지만 목록 자체에는 제작 된 "클론"메소드가 없습니다.
메소드 1 : 클로닝 유형
클론은 일반 값 유형 목록에 매우 간단합니다. 원래 목록과 동일한 컨텐츠의 새 목록을 작성하십시오.
메소드 2 : 참조 유형을 깊이 복사하십시오
일반 목록에 참조 유형이 포함되어 있고 (얕은 복제 대신) 깊이로 복사 해야하는 경우 다음 인터페이스 메소드를 사용할 수 있습니다 : .
이 메소드는 클론 목록의 모든 객체가 원래 목록의 객체와 완전히 독립적이지 않도록합니다.
메소드 3 : 복사 생성자를 사용하여 클로닝
목록 요소가 실현되지 않았지만 중복 생성자가있는 경우 다른 클로닝 전략을 사용할 수 있습니다.
이 메소드는 복제 목록의 새 인스턴스 사본을 사본 생성자와 함께 사용합니다.
기타 제안
인터페이스는 편의성을 제공 할 수 있지만 모든 멤버의 두 번째 사본을 보장하는 데 달려있어 문제가 발생할 수 있습니다. 다음 대체 체계를 고려할 수 있습니다 :
생성자 복사 : 명확한 정의 상태가있는 유형의 경우, 복제 생성자는 깊이 사본을 만들기 위해보다 효과적이고 유지 관리하기 쉬운 메소드를 제공합니다.
<:> 공장 메소드 : 와 유사한 메소드는 필요한 새로운 유형의 인스턴스를 반환하는 데 사용될 수 있습니다.
제안 된 모든 클론 방법은 편의성을 향상시키기 위해 재사용 가능한 방법 또는 확장으로 캡슐화 될 수 있습니다.
위 내용은 C#에서 일반 목록을 효율적으로 복제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!