반응형
박싱(Boxing)
값 타입을 참조 타입으로 변경 (암시적)
언박싱(UnBoxing)
참조 타입을 값 타입으로 변경 (명시적)
값 타입
값 타입
- C#에서 구조체, 열거 타입 등은 값 타입이다.
- System.ValueType 로부터 항상 상속
- 스레드 스택에 할당 된다.
참조 타입
참조 타입
- C#에서는 모든 클래스는 참조 타입이 된다.
- System.Object로부터 상속
- 힙에 저장이 되며 GC가 관리하게 된다.
- 이 힙 메모리의 주소를 가리키는 값은 스택에 저장이 된다.
특징
박싱과 언박싱은 성능에 무리가 가기때문에 사용하지 않는게 좋다. 박싱, 언박싱 과정을 통해 힙에 가비지가 쌓여 GC에 무리를 줄 수 있기 때문이다.
또한 잘못된 타입으로 언박싱을 시도 했을때 런타임 오류가 발생할 수 있다.
박싱 언박싱을 피하는 방법
- 제네릭을 사용한다.
- 기능을 구현할 때 오버로드를 사용해 값과 참조 타입 모두를 처리할 수 있도록 한다.
참고
>> Github
GameDeveloper-Client-Interview/Unity_C#/박싱, 언박싱.md at main · Romanticism-GameDeveloper/GameDeveloper-Client-Interview
게임 클라이언트 개발자 면접 리스트 정리입니다. Contribute to Romanticism-GameDeveloper/GameDeveloper-Client-Interview development by creating an account on GitHub.
github.com
[Unity] C# Boxing , unboxing ( 박싱, 언박싱 )
● Boxing, Unboxing 의 정의 ▶ Boxing ( 박싱 ) : 값 형식을 참조 형식으로 변환하는 것을 말한다. boxing은 암시적으로 발생한다. ( 예를 들어 int, float 를 object 로 변환하는 것을 말하는데 이 과정에서 단
everyday-devup.tistory.com
반응형
'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 |