박싱 언박싱

DevCho1107

·

2020. 1. 7. 22:53

C# 자료구조인 컬렉션에 있는 ArrayList, queue, stack, dequeue, Hashtable 은 공통적으로 모든 자료형 즉, 최상위 자료형인 

gameObject 까지 담을 수 있는데, 이 과정에서 제네릭(C++에서의 템플릿과 비슷)을 사용하는게 아니라면 


박싱,언박싱을 하게된다. 


예를 들어 int형 데이터를 저장할 때 자연스럽게 박싱을 거쳐 gameObject형 데이터로써 저장되는 것이다.

다시 꺼내올 때에는 언박싱을 거쳐 int형으로 반환이 된다. 


잠깐 이때 주의할 점으로는, int형이 아닌 타입의 데이터로 불러오려는 행위는 InvalidCastException 오류를 발생시킨다. 

(is 연산자 사용을 통한 타입확인)


이러한 일련의 과정은 성능저하를 발생시킨다.


이상으로 박싱언박싱과, 그에 대한 처리에 대해 알아보았다.