본문 바로가기
C#

[c#] Boxing 과 Unboxing

by 코모's 2021. 8. 20.
반응형

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