<--! 수학 기호 --> [C#] Nullable

새소식

반응형
Language/C#

[C#] Nullable

  • -

 

 

C#에서 값 형식(value type)에 해당하는 자료형들이 있다. (byte, int, float, ...)

이런 값 형식의 변수들은 초기화해서 사용하지 않으면 C# 컴파일러는 컴파일조차 해주지 않는다.

 

하지만, 개발을 하다 보면 이런 값 형식의 데이터에도 어떠한 값도 가지지 않게 하고 싶은 경우가 종종 있다.

참조 형식(reference type)null을 줄 수 있지만, 값 형식에는 null을 줄 수가 없다.

그래서, C#에서는 이런 값 형식 자료형 변수에도 null 값을 할당할 수 있도록 Nullable 형식이란 걸 지원한다.

 

 

Nullable

 

값 형식에 한해서 사용할 수 있으며, 선언하는 방식은 다음과 같다.

데이터타입? 변수이름;

 

사용 예시를 보면 다음과 같이 쓸 수 있다.

// int data = null;    오류
int? data = null;

 

 

hasValue Value 속성

 

모든 Nullable 형식은 hasValueValue 속성을 가진다.

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
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.