2011-03-30 3 views
0

나는 객체는 post 명명하고 난개체 복사본을 만들려면 어떻게해야합니까?

를 게시 새로운 유형의 post 객체로 newPost라는 이름의 변수를 다음

VAR newPost =를 선언하지만 post 객체의 속성을 수정하면 해당 수정 newPost 개체의 속성에 영향을줍니다.

어떻게이 문제를 해결할 수 있습니까?

+0

제 생각에는 약간 숙제를하는 것이 좋습니다. http://stackoverflow.com/questions/129389/how-do-you-do-a-deep-copy - 오브젝트 - 인 - 그물 - 구체적으로 –

답변

0

개체를 복제하는 방법을 제공해야합니다. 다른 주석가가 말했듯이, 당신은 단지 같은 대상을 참조하고 있습니다. 자세한 내용은이 StackOverflow 질문 (첫 번째 답변)을 참조하십시오. Deep cloning objects

0

이것은 매우 기본적인 질문이다, 나는 그것에 책을 쓸 수 없습니다 ...

하지만 작동하도록되어 정확히 방법입니다. '참조'변수를 설정하고 있습니다. newPostpost은 모두 class이며 따라서 참조 유형과 동일한 동일한 객체를 참조하므로 모든 변경 사항이 다른 유형에도 영향을 미칠 것으로 예상해야합니다.

좋은 기본 .NET 프로그래밍 서적을 선택해야하며 값 유형과 참조 유형의 차이점에 특히주의해야합니다.

'솔루션'은 새 개체를 만들고 이전 개체의 개별 구성원을 새 개체로 설정/복사하는 것이지만 너무 많은 것을 파고 들기 전에 해결 방법이 너무 오래 도움이되지 않을까 우려합니다.

+0

당신은 재밌는 사람, 고마워요 – user667429

5

당신이해야 할 일은 여러 가지 가능한 일 중 하나입니다. 고려해야 할 커플이 있습니다.

  1. 는 IClonable을 구현하고
  2. var newPost = post.Clone();가 paramenter로 다른 인스턴스, 는 다음 새 인스턴스에 전달 된 인스턴스에서 속성을 복사가있는 클래스에 생성자가 있습니까. 즉 var newPost = new Post(post);

하나 피려 잡았다, 당신은 아마, 객체의 deep clone or deep copy로 알려진 무엇을하고 싶은 것입니다 그래서 당신의 클래스는 두 개의 인스턴스가 동일한 참조를 가리키는되지 않은 개체 속성이있는 경우 그들의 속성 때문입니다.

관련 문제