반응형
Boxing이란?
- 값 형식을 참조 형식으로 변환하는 것이다.
- 값 형식의 스택에 있는 데이터가 참조형식의 힙으로 복사된다.
- Boxing할 때는 새로운 개체가 만들어져야 하며, 이 작업은 할당 작업보다 최대 20배의 시간이 소모된다.
- ex) 값 형식 int가 참조 형식 string 으로 변환 되는 과정에서 Boxing이 발생한다.
int a = 10;
string str = a;
Unboxing이란?
- 참조 형식을 값 형식으로 변환하는 것이다.
- 참조 형식의 힙에 있는 데이터가 스택으로 복사된다.
- Unboxing은 Boxing한 객체에서만 가능한다.
- Unboxing할 때는 캐스팅 과정에 할당 작업보다 4배의 시간이 걸릴 수 있다.
- ex) 참조 형식의 string이 값 형식의 int로 변환 되는 과정에서 Unboxing이 발생한다.
int a = 10;
string str = a;
int b = (int)str //Unboxing 성공
string str2 = "15";
int c = (int)str2; //Unboxing 실패
반응형
'C#' 카테고리의 다른 글
[c#] 추상클래스와 추상 메서드(abstract) (0) | 2021.08.20 |
---|---|
[c#] 가상(virtual)함수와 오버라이딩(override) (0) | 2021.08.20 |
[c#] 코루틴과 Invoke (0) | 2021.08.09 |
[c#] 스레드와 코루틴 (0) | 2021.08.09 |
[c#] Ramdom 난수 (0) | 2021.07.26 |