2017-12-05 15 views
0

나는 다음과 같은 코드가 있습니다복사 객체 데이터

public class Entity 
{ 
    public int Number; 
    public string Text; 
} 

System.Collections.Generic.List<Entity> list = new List<Entity>(); 
list.Add(new Entity() { Number = 100, Text = "hello1" }); 
list.Add(new Entity() { Number = 200, Text = "hello2" }); 

Entity sampleEntity = new Entity() { Number = 300, Text = "World" }; 

list[0] = sampleEntity // this does only replace the pointer in the list 

list[0].Text = sampleEntity.Text; // this writes to the pointer in list 
list[0].Number = sampleEntity.Number; // this writes to the pointer in list 

내가 힙에 전체 개체 데이터의 memcopy을 수행하는 모든 가능한 방법이 있는지 알고 싶습니다 무엇을 - list[0] 엔트리 포인트는? 내 말은 단순한 역 참조입니다. *list[0] = *entity;

+2

.net은 거의 필요하지 않습니다. 아마도 당신은 복제 방법을 구현하기를 원할지도 모른다. –

답변

0

EntityICloneable (Creating a copy of an object in C# 참조)을 구현하는 경우를 제외하고는 아닙니다.

저는 개인적으로 새로운 Entity을 개인적으로 인스턴스화합니다.

list[0] = new Entity { Number = sampleEntity.Number, Text = sampleEntity.Text };