공부
[C#] 값형식과 참조형식
cho22
2020. 11. 27. 18:22
반응형
C#의 데이터 형식은 크게 값형식과 참조형식으로 나뉜다. 이 차이점은 이들 형식이 복사되는 방식에 따라 나뉘게 된다.
값형식의 데이터는 항상 값으로 복사되지만, 참조형식 데이터는 항상 참조로 복사된다.
값형식 | 참조형식 | |
저장위치 | 스택 | 힙 메모리 |
할당된 곳에 저장되는 데이터 | 입력한 데이터 | 데이터가 위치한곳의 참조 |
특징 | 해당 메소드 실행이 종료되면 사라짐 int a = 1; int b = a; 위의 a,b의 값중 어느 하나의 값을 수정해도 다른쪽에는 영향을 끼치지 않는다 |
GC에 의해 정리됨. 서로 다른 두 변수가 같은 데이터를 참조한다면 한개의 변수값을 변경하면 다른 변수도 영향을 받는다. |
변환 | 값형식 -> 참조형식 Boxing |
참조형식 -> 값형식 UnBoxing |
복사 | 깊은복사 | 얕은복사 |
예 | bool, char, byte, decimal, double, enum, float, int long, short, sbyte, struct, uint, ulong, ushort | class, interface, delegate, object, string |
반응형