본문 바로가기
스터디/C#

Value 타입 vs Reference 타입이 나뉘어 존재하는 이유

by newoo 2019. 8. 14.

1. 프로그램이 실행되는 효율

2. 메모리 공간을 사용하는 효율

 

큰 객체가 value타입이라면?

변수를 대입할 때마다 객체의 내용을 복사하는 처리가 수행 --> 비효율

반대로, Reference타입이라면 주소값만 복사 --> 비교적 효율적

 

작은 객체의 경우에는?

Reference타입이라면 주소를 저장하는 영역과 객체내용을 저장하는 영역, 2개의 영역이 필요

하지만, 작은 객체를 위해 2개의 공간이 사용되는 것은 비효율적

 

객체가 클수록 Reference타입이 유리하고, 작을수록 value타입이 유리함

 

** C#에서 value타입을 nullable형식으로 만드려면, ?를 데이터타입 우측에 추가기입해야한다.

Reference타입의 경우에는 기본값은 null이다.

 

// value타입
int? number = null;

// reference타입, Item이라는 클래스가 있다고 가정
Item item; // 기본값이 null

 

 

 

'스터디 > C#' 카테고리의 다른 글

람다식(Lamda)  (0) 2019.08.16
정적메서드에서는 자기 자신의 인스턴스 메서드 호출불가  (0) 2019.08.14
[용어] 시그니처  (0) 2019.08.14
코드 스니펫(Code Snippet)  (0) 2019.08.13
책 스터디 일정  (0) 2019.08.11