c#에서 Value Type은 null값을 가질 수 없다.
Nullable은 Value Type이 null값을 가질 수 있게 해주면서 HasValue를 통하여
null상태를 체크할 수 있는 기능을 하게끔 해준다.
int? num = 100;
Console.WriteLine($"num: {num.Value}");
Console.WriteLine($"num: {num.HasValue}");
[출력]
num: 100
num: true
위와 같이 HasValue는 변수값이 null이 아니면 true를 반환한다.
int? num = null;
if (num.HasValue)
Console.WriteLine($"num: {num}");
[출력]
// 출력되지 않음
num변수는 null 값을 가지므로 num.HasValue은 false값을 가진다.
따라서 if문은 실행되지 않기 때문에 아무것도 출력하지 않는다.