... | ... | @@ -19,18 +19,18 @@ value type vs. reference type |
|
|
**
|
|
|
|
|
|
#### **기본 자료형**
|
|
|
* Value Type
|
|
|
* **Value Type**
|
|
|

|
|
|
|
|
|
* C#과 닷넷 프레임워크에서 제공되는 타입의 대응관계
|
|
|
* **C#과 닷넷 프레임워크에서 제공되는 타입의 대응관계**
|
|
|

|
|
|
|
|
|
* 기본 자료형의 default value
|
|
|
* **기본 자료형의 default value**
|
|
|

|
|
|
|
|
|
#### **value type vs. reference type**
|
|
|
|
|
|
* Value types and reference types in the CTS
|
|
|
* **Value types and reference types in the CTS**
|
|
|

|
|
|
|
|
|
위의 그림과 같이 CTS에서 변수는 참조형식, 값형식으로 나뉜다.
|
... | ... | @@ -42,8 +42,15 @@ value type vs. reference type |
|
|
> **heap**
|
|
|
> **++힙++**은 프로그램에서 필요에 의해 메모리를 사용하겠다고 요청했을 때 사용할 수 있는 저장소다. 힙의 경우 별도로 명시하지 않는 한 CLR에서는 관리 힙(managed heap)을 가리킨다. 관리 힙이란 CLR의 가비지 수집기(GC:Garbage Collector)가 할당/해제를 관리하기 때문에 붙여진 이릅이다. C#에서 new로 할당되는 모든 참조형 객체는 힙에 할당된다. 메모리 해제는 GC가 자동으로 해준다.
|
|
|
|
|
|
* **스택에 저장된 값 형식의 데이터**
|
|
|
<img src="secondImage/variable.png" width="350"> <img src="secondImage/variable-2.png" width="200">
|
|
|
|
|
|
* **데이터를 가리키는 참조형 변수를 위해 할당된 메모리**
|
|
|
<img src="secondImage/variable-4.png" width="350"> <img src="secondImage/variable-5.png" width="350">
|
|
|
|
|
|
* **값 형식과 참조 형식의 차이점**
|
|
|
<img src="secondImage/variable-6.png" width="500">
|
|
|
|
|
|
|
|
|
#### **var**
|
|
|
#### **nullable**
|
|
|
#### **구조체**
|
... | ... | |