박싱값 타입 -> 참조 타입

c#에선 데이터형의 최상위 부모를 object형으로두는데 

다른형의 변수를 object형으로 변환하여 힙메모리에 저장시키는것. 

ex) int m=123; object obj = m; 묵시적

Object 라는 참조 타입에 123이라는 값 타입의 리터럴 상수를 대입하는 간단한 코드이다.




언박싱:참조 타입 -> 값 타입

힙에 저장된 데이터의 형식을 다시 원래 데이터형으로 변환하는것.

ex) int n= (int)obj; 명시적


비용문제:결국 메모리 위치를 변화 시켜 가는 박싱과 언박싱은 비용이 많이 든다.

대표적으로 ArrayList 와 같은 object 형 컬렉션에 대량의 값 타입을 넣고 빼고 하여

발생하는 박싱,언박싱은 실제로 많은 속도 저하를 유발하는 원인이기도 하다.

(실제로 닷넷 2.0에서는 박싱,언박싱 (업캐스팅,다운캐스팅)의 비용을 줄이기 위해 지네릭이라는
 
새로운 개념이 도입되었다)



'C#, ASP.NET, CORE, MVC' 카테고리의 다른 글

5강. 클래스 OOP  (1) 2018.07.19
4강. 파일 입출력  (0) 2018.07.19
3강. 배열  (2) 2018.07.19
2강. 데이터형,기본문법  (0) 2018.07.18
1강. 닷넷프레임워크와 C#  (2) 2018.07.18

+ Recent posts