반응형
박싱(Boxing)
값 타입을 참조 타입으로 변경 (암시적)
언박싱(UnBoxing)
참조 타입을 값 타입으로 변경 (명시적)
값 타입
값 타입
- C#에서 구조체, 열거 타입 등은 값 타입이다.
- System.ValueType 로부터 항상 상속
- 스레드 스택에 할당 된다.
참조 타입
참조 타입
- C#에서는 모든 클래스는 참조 타입이 된다.
- System.Object로부터 상속
- 힙에 저장이 되며 GC가 관리하게 된다.
- 이 힙 메모리의 주소를 가리키는 값은 스택에 저장이 된다.
특징
박싱과 언박싱은 성능에 무리가 가기때문에 사용하지 않는게 좋다. 박싱, 언박싱 과정을 통해 힙에 가비지가 쌓여 GC에 무리를 줄 수 있기 때문이다.
또한 잘못된 타입으로 언박싱을 시도 했을때 런타임 오류가 발생할 수 있다.
박싱 언박싱을 피하는 방법
- 제네릭을 사용한다.
- 기능을 구현할 때 오버로드를 사용해 값과 참조 타입 모두를 처리할 수 있도록 한다.
참고
>> Github
반응형
'Record > TIL' 카테고리의 다른 글
[TIL] 정말 오랜만에 쓰는 TIL (p.s. 서울 이사 드디어 왔다!) (6) | 2024.10.22 |
---|---|
[Unity] 최종 프로젝트 발표 (Feat. 스파르타 수료 및 우수상) (4) | 2024.08.22 |
[Unity] 형변환: 업캐스팅, 다운캐스팅 알아보기 (2) | 2024.08.20 |
[Unity] 유니티 렌더링 순서 (0) | 2024.08.19 |
[Unity] InputField 최대글자 설정하고 사용할 수 있는 문자 제한하기 (0) | 2024.08.17 |