1. Object
- 거의 모든 자료형들의 기본 형태로 모든 클래스의 부모 클래스인 Object 클래스로부터 파생된다.
→ Object 타입은 모든 데이터 타입 객체를 담을 수 있다.
- Object 타입을 사용할 때 '박싱'과 '언박싱'이 일어난다.
▶ 선언
object obj;
obj = 1;
obj = "문자열";
obj = null;
2. 박싱
- 값 타입의 데이터를 Object 타입(참조 타입)으로 변환하는 것
- 스택 영역에 저장된 값을 (1) Object 형식으로 힙 영역에 복사하고, (2) 스택의 Object 객체가 그 주소를 가리킨다.
object obj;
obj = 1;
3. 언박싱
- Object 타입(참조 타입)의 데이터를 값 타입으로 변환하는 것
- 힙 영역에 복사된 데이터를 스택 영역의 값으로 가져와 저장한다.
object obj = 1;
int value = (int)obj;
▶ 주의사항
* 박싱과 언박싱은 할당에 많은 시간이 소모되어 프로그램의 성능을 저하시킬 수 있다.
* 언박싱 시 다른 타입으로 언박싱 하면 런타임 오류가 발생한다.
'✏️ 이론 > C#' 카테고리의 다른 글
| 델리게이트 (Delegate), 이벤트 (Event) (0) | 2023.12.05 |
|---|---|
| [ C# ] 자료구조 (스택, 큐, 딕셔너리, 해시테이블) (0) | 2023.09.05 |
| [ C# ] Virtual, Abstract, Interface (0) | 2023.09.04 |
| [ C# ] 자료구조 (Array, List, ArrayList) (0) | 2023.09.04 |
| [ C# ] 메모리 영역 (0) | 2023.03.25 |