1. Nullable 타입
C#에서 Value Type 같은 경우 Null을 가질 수 없다. 예를들어 int, bool 과 같은 타입에는 null를 할당하지 못한다.
하지만 Nullable 타입을 활용한다면 null을 할당할 수 있는데, Value 값을 가지면서 Null 상태를 체크할 수 있는 NHasValue를 가지고 있는 struct 이다.
2. 작성법
일반적으로
int i = 0; 으로 value 타입을 선언하지만
int? i = null; 을 사용하는 것으로 null을 할당할 수 있다. 타입뒤에 ? 키워드를 붙여 사용하는 것이다. 이는 Nullable<int> 와 동일한 효과를 지닌다.
int num = null; 은 에러를 발생시키지만 int? num = null; 은 에러를 발생시키지 않는다.
또한 Nullable<int> 도 동일한 역할을 하기 때문에 null을 대입해도 에러가 발생하지 않는다.
num.HasValue를 통해 값이 있는지 없는지 체크하고, GetValueOrDefault를 통해 값이 있다면 값을, 없다면 int의 기본 값인 0을 리턴한다.