더북(TheBook)

언박싱

다음 코드는 object 변수에 저장된 1234를 실제 정수 형식의 데이터로 변환하는 모습을 보여 줍니다. 참조 형식의 데이터를 값 형식의 데이터로 변환하는 과정이 포장을 푸는 것과 비슷해서 언박싱이라고 합니다. 언박싱을 캐스트(cast) 또는 캐스팅(casting)으로도 표현합니다.

> object o = 1234;
> int i = (int)o;
> i
1234

object 형 변수에 들어 있는 데이터 중에서 숫자 형식의 데이터는 바로 int 형 변수에 대입할 수 없습니다. object 형 변수 값을 int 형 변수에 대입하려면 형식 변환을 해야 합니다. 형식 변환은 캐스팅이나 Convert 클래스 같은 변환 API를 사용하면 됩니다. 즉, (int) 또는 Convert.ToInt32() 같은 형식 변환 관련 기능을 명시적으로 지정해 주어야 합니다.

> object o = 12.34;
> int i = Convert.ToInt32(o);
> i
12

당연한 이야기이지만, 데이터 형식에 맞지 않게 형식 변환을 잘못하면 에러가 발생합니다.

> object o = "Hello";
> int i = (int)o;
지정한 캐스트가 잘못되었습니다.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.