C#에서는 Nullable Type을 선언할 수 있는데 예를 들어 다음과 같이 ?를 기본 자료형에 붙여쓰면 해당 변수는 Nullable Type이 된다.
int? compound; char? sigleCharacter;
이 자료형은 기본 자료형의 표현 범위에 null 값을 추가한 형태로 예를 들어 int? 의 경우 int 값외에 null이 할당 가능하다.
주로 해당 타입을 선언 후 값을 바로 할당 할 수 없는 경우에 null을 할당하여 해당 변수가 초기화 되어 있지 않음을 구별하여 쓸 수 있다.
Nullable Type은 두가지 read-only property를 가지는데
- HasValue (bool) : true인경우 값이 할당 되었음을 의미하고, false의 경우 값이 할당 되지 않은 상태 (null)임을 의미한다.
- Value : 실제 할당 된 값을 의미하며, 값을 할당하지 않고 이 속성을 참조하려 하면 InvalidOperation 예외가 발생한다.
int? x = 10; if (x.HasValue) { System.Console.WriteLine(x.Value); } else { System.Console.WriteLine("Undefined"); }
기본 연산자나 비교 구문에서 Nullable Type을 쓸 경우 예상과는 다르게 동작할 수 있으므로 주의를 해서 써야 한다. 자세한 내용은 위의 링크를 참조하자.
No comments:
Post a Comment