본문 바로가기
개발/C#

Boxing UnBoxing

by 사과잼빵 2015. 10. 6.

대부분 언어에서 변수는 참조 변수와 값 변수가 존재한다.

C#에서도 이 두 종류의 변수가 있는데 이들간 서로 전환하는 방법을 Boxing / UnBoxing 이라고 한다.


Boxing : 값 변수를 참조 변수로 변환하는 기법

UnBoxing : 참조 변수를 값 변수로 변환하는 기법


1. Boxing 과정

  1) 값 변수를 객체화 하기 위한 메모리(Box)를 힙 영역에 생성한다.

  2) 값 변수의 값을 힙 영역에 생성한 Box로 복사한다.

  3) 참조 변수가 박스를 가리키도록(참조하도록) 한다.


2. UnBoxing 과정

  1) 해당 객체가 지정한 값타입을 Boxing한 값인지 확인한다.

  2) 객체의 값을 값타입 변수에 복사한다.


int p = 100;

object o = p;        //Boxing

if(o is int)           //해당 객체가 지정한 값타입인지 미리확인(안전하게 하기 위해)

int q = (int)o;    //UnBoxing



 

'개발 > C#' 카테고리의 다른 글

C++의 lambda와 C#의 delegate의 차이  (0) 2018.02.21