[C#] Nullable
2022. 3. 9. 15:31ㆍLanguages/C#
C#에서 값 형식(value type)에 해당하는 자료형들이 있다. (byte, int, float, ...)
이런 값 형식의 변수들은 초기화해서 사용하지 않으면 C# 컴파일러는 컴파일조차 해주지 않는다.
하지만, 개발을 하다 보면 이런 값 형식의 데이터에도 어떠한 값도 가지지 않게 하고 싶은 경우가 종종 있다.
참조 형식(reference type)은 null을 줄 수 있지만, 값 형식에는 null을 줄 수가 없다.
그래서, C#에서는 이런 값 형식 자료형 변수에도 null 값을 할당할 수 있도록 Nullable 형식이란 걸 지원한다.
Nullable
값 형식에 한해서 사용할 수 있으며, 선언하는 방식은 다음과 같다.
데이터타입? 변수이름;
사용 예시를 보면 다음과 같이 쓸 수 있다.
// int data = null; 오류
int? data = null;
hasValue와 Value 속성
모든 Nullable 형식은 hasValue와 Value 속성을 가진다.
int? data = null;
Console.WriteLine(data.HasValue); // data는 null이므로 False 출력
int a = 100;
Console.WriteLine(a.HasValue); // a = 100 이므로 True 출력
Console.WriteLine(a.Value); // 100 출력
만약 HasValue = False인데 Value를 사용한다면, CLR은 InvalidOperationException 예외를 띄운다.
728x90
반응형
'Languages > C#' 카테고리의 다른 글
[C#] TryParse() VS Parse() (0) | 2022.03.13 |
---|---|
[C#] Null과 관련된 연산자들(?, [ ]?, ??) (0) | 2022.03.13 |
[C#] 문자열 서식 맞추기 (string.Format(), 문자열 보간) (0) | 2022.03.09 |
[C#] CLR(Common Language Runtime)과 네이티브 코드(Native Code) (0) | 2022.03.09 |
[C#] 프로퍼티(Property) (0) | 2022.02.15 |