C#/C#정리

[C#] 다양한 타입(object, dynamic, var)

반나무 2021. 9. 28. 19:45

object : boxing, unboxing

모든타입이 상속 받아야하는 최상단 타입

그렇기 때문에 모든 타입은 object 타입으로 형 변환이 가능하다.

이때 boxing, unboxing 이라고 한다.

 

dynamic

루비나 파이썬같은 동적 언어도 .NET프레임워크에서 실행할 수 있게 연동하기위해 나왔다.

var와 비슷해 보이지만

var는 컴파일 빌드 시점에 초기값과 대응되는 타입으로 치환하지만

dynamic은 해당 프로그램이 실행되는 시점에 타입을 결정한다.

var

 

박싱

값 형식을 참조 형식으로 변환하는 것

ex) int → object

언박싱

참조 형식을 값 형식으로 변환하는 것

ex) object형 → 실제로 사용할 다른 타입으로 변환하는것

중요한 이유

boxing이 되면 참조 형식으로 변환되어

스택 : 주소

힙 : 실제 값

이 들어가게 된다.

힙을 사용함으로서 GC에게 일을 만들어주게되어 좋지 않아진다.

최대한 boxing을 줄이는 코드를 작성할것을 권장한다.

반응형