[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

BELATED ARTICLES

more