2017년 7월 12일 수요일

C# : 변수 뒤의 물음표(?) 는 무슨 뜻일까?

C# 에서 가끔 변수들 뒤에 물음표(?) 가 달려 있는 경우가 있다.


알고보면 간단한건데, 모를때 모면 이게 무슨 의미인지 알수가 없어 난감한데...
이건 그냥 숫자 변수에 "Null" 이 지정가능하다는 뜻. 즉, "Nullable" 변수라는 뜻이다.


이렇게 원래 Null 값을 가질수 없는 숫자 변수가 물음표(?) 를 붙여 선언하면 Null 값을 지정할 수 있다.


일반적 방식으로 그냥 숫자 변수를 선언하면 숫자 타입의 변수는 "0" 혹은 "임의의값" 을 반드시 가져야 하므로 Null 을 지정하면 오류가 발생한다.


물론 일반적으로 Null 이 아닌 0을 지정하면 되므로 크게 문제가 되지 않는다.
단지 사용상의 문제일뿐.

즉, 파라메타를 넘길때 처럼, 아무런 값이 넘어오지 않을경우 혹은, "0" 일 경우와 아무것도 없는 경우를 구분해서 처리해야 할 경우 등, 필요에 따라 쓰이는 방식이다.

관련링크 : Nullable 변수에 값이 들어 있는지 체크는 HasValue 를 쓴다.