[C#공부] Nullable Type
2018. 1. 6. 16:26
# Nullable Type이란?
Nullable Type은 null이 가능한 타입을 말한다.
참조 타입의 경우 null값이 할당될 수 있지만 Value 타입은 null 할당이 불가능하다.
그래서 Value 타입에서 null이 가능하게 하는 것이 바로 Nullable Type이다.
위 예시에서 두 구문을 동일하다.
따라서 기호에 따라 사용하면 된다.
# Nullable Type의 특성
- 기본적으로 null값을 허용하지 않는 타입에만 적용이 가능하다.
- HasValue, Value 속성(읽기전용)과 GetValueOrDefault 메소드를 사용할 수 있다.
|
값 할당된 경우 |
값 할당되지 않은 경우(null) |
HasValue |
true |
false |
Value |
(할당된)값 |
InvalidOperationException 발생 |
GetValueOrDefault() |
(할당된)값 |
기존 타입의 default값 ex) int일 경우 0, bool일 경우 false |
- 명시적/암시적 변환이 가능하다.
# Nullable Type 예제
* 출력 결과)
0
* 예제 설명)
- Nullable<int> 타입의 변수 number1에 null로 초기화 (Line : 20)
- 만약 number1의 값이 할당되어 있었다면 if문에서 number1.HasValue는 true를 리턴하게 되고 number2에는 number1의 값을 복사 (Line : 23~24)
- 하지만 number1은 null이 할당되어 있으므로 number2에는 int 타입의 default값인 0이 복사 (Line : 25~26)
'Programming > C#' 카테고리의 다른 글
[C#공부] Thread (0) | 2018.07.18 |
---|---|
[C#공부] ??연산자(null 병합 연산자) (0) | 2018.01.06 |
[C#공부] var 키워드 (0) | 2018.01.06 |
[C#공부] 배열/Collection을 이용한 foreach문 사용 (0) | 2018.01.06 |
[C#공부] as와 is 연산자 (0) | 2018.01.06 |