C#
널러블(Nullable)
코다람쥐
2022. 1. 26. 16:38
1. Nullable
int형에 대해 null값을 넣고 싶은 경우가 있다.
0을 null값으로 생각해봐도 되는거 아니냐고 반문할 수 있지만 만약 0마저도 사용해야 하는 경우가 생길 때 사용하는 것이 널러블이다.
선언
int? n = null;
사용방법
static int Find()
{
return 0;
}
static void Main(string[] args)
{
int? n = null;
n = 3;
// int a = n; 구문오류
int a = n.Value;
}
그리고 알아야할 점은 int형과 int?형은 서로 다른 형식이라는 점이다.
그래서 int?형의 값을 int형에 대입할 때는 Value를 사용한다.
주의할 점
int?형식에 null값이 들어간 경우 Value를 int형에 넘겨주게 되면 오류가 발생한다.
if(n != null)
{
int a = n.Value;
}
if(n.HasValue)
{
int a = n.Value;
}
그래서 위와 같은 방법으로 사용한다. 두 if문의 차이점은 딱히 없다.
또 다른 사용방법
int b = n ?? 3;
위 코드의 의미는 삼항연산자를 대입해서 생각하면 쉽다.
int b = (n != null) ? n.Value : 3;
null값이 아니라면 n.Value값을 대입하고 null이면 3을 넣는다는 뜻이다.