딕셔너리 복사에 관한 질문이 있습니다
621
작성한 질문수 5
안녕하세요 루키스님.
개발을 하다 보니 딕셔너리를 복사해 사용해야될 때가 있는데 dictionary<> dict1 = dict2 를 한 뒤 dict1을 수정할 경우 dict2의 내용까지 변경
되는 현상을 겪었습니다. 알아보니 얕은복사, 깊은복사의 개념으로 개념은 어느정도 이해했으나 구현하는 부분은 샘플코드를 봐도 쉽게 이해가
안되네요...
혹시 딕셔너리의 깊은복사에 대한 샘플 코드나 예제를 설명해주실 수 있으신가요?
답변 1
1
그냥 참조 타입이 무엇인지 이해를 하시면 됩니다.
C++이나 C를 하셨다면 포인터를 이해하시면 되고요.
참조 타입은 원본을 '참조'하고 있는 상태이고
내부적으로는 원본의 주소값을 들고 있습니다.
dict2를 이용해도 dict1가 바뀌는 이유는,
dict1, dict2 둘다 동일한 원본을 바라보고 있는 상태이기 때문입니다.
C#에서는 class로 만드는 애들이나 List, Dictionary 같은 컨테이너 모두 참조타입입니다.
0
감사합니다! 결국 깊은복사(데이터까지 그대로 복제)를 한번에 방법은 찾지 못하고 dict1의 값을 하나씩 꺼내서 dict2에 ADD하는 방법으로 구현하긴 했는데 효율성의 측면에서 옳은 방식인지는 모르겠네요.. :(
ResourceManager 클래스 관련 질문
1
19
2
몬스터 HP 게이지바 이동
0
20
1
매니저 관련 질문이 있습니다.
0
69
2
비쥬얼 스튜디오에서 unity연결이 없습니다.
0
74
2
UI 기능 관련 질문이 있습니다!
0
70
2
픽셀 좌표 스크린 좌표
0
48
0
전체적으로 코드 읽는게 굉장히 오래 걸리네요...
0
103
2
카메라 #2 수업 캐릭터 쓰러짐 해결
0
95
1
플레이어 움직임이 끝날때, 기울어짐 현상
0
99
1
Input 적용과 관련하여 질문 있습니다.
0
91
1
디버그 불가.. Unity에 연결 불가
0
98
1
달리기 애니메이션 에러
0
98
2
오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다
0
75
1
GetKey 오류
0
128
2
에셋을 어디에 올려두신지 알 수 있나요?
0
114
1
재귀호출? 오류나는데 왜 이래요 ?
0
177
6
Animation blending 파라미터 계산
0
75
1
newPos와 to지점이 겹쳐져야 하는거 아닌가요?
0
112
3
오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다
0
96
2
질문있습니다
0
155
2
아 이거 소스코드 같은거 없나요?
0
152
3
질문 드립니다. string.IsNullOrEmpty(name)
0
94
2
@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?
0
139
2
유니티6 NavMesh 안되는분들
1
192
1





