[C#] Nullalbe 값 형식
Null 허용 값 형식 T?는 기본 값 형식 T의 모든 값과 추가 null 값을 나타냅니다. 예를 들어 bool? 변수에는 다음 세 가지 값 중 하나를 할당할 수 있습니다. true, false, null. 기본 값 형식 T는 null 허용 값 형식 자체일 수 없습니다.
Null 허용 값 형식은 제네릭 System.Nullable<T> 구조체의 인스턴스입니다. 서로 교환 가능한 형식인 Nullable<T> 또는 T? 중 하나에서 기본 값 형식 T의 null 허용 값 형식을 참조할 수 있습니다.
기본 값 형식의 정의되지 않은 값을 표시해야 하는 경우 일반적으로 null 허용 값 형식을 사용합니다. 예를 들어 부울(bool) 변수는 true 또는 false만 가능합니다. 그러나 일부 애플리케이션에서는 변수 값이 정의되지 않았거나 누락될 수 있습니다. 예를 들어 데이터베이스 필드는 true 또는 false를 포함하거나 아무 값도 없을 수 있습니다(즉 NULL). 이러한 시나리오에서 bool? 형식을 사용할 수 있습니다. [MSDN]
Nullable 값 형식 - C# reference
C# nullable 값 형식 및 사용 방법 알아보기
learn.microsoft.com
MSDN에 말을 참고하려고 했으나 말이 매우 어렵습니다...
최근 회사에서 그렇고 사용하는 컴파일러가 너무 예전 버전이라 새로운 문법을 따라가기가 너무 힘들게 되었습니다.
C# 5.0(.Net 4.5.2) 버전을 사용하니 되는 것도 없고 문법도 안쓰다보니 다 까먹어서 문법을 한번 돌아보게 되었습니다.
쉽게 값(변수)에 null 체크가 가능하게 하는 것 입니다.
마치 더블유에요? 캐릭터에요? 인티저인가요? 이런 것 같지만 저기에 만약에 값이 안들어 가면 null 이 됩니다.
그래서 언제 쓰는건가? HasValue 을 사용해도 되는데? 아래와 같은 예를 들어서 이해해 보면 됩니다.
기존대로 쓰면 되는데 그런데 실제로 출생연도가 00년도일 수도 있는데, 그러면 어떻게 되는걸까?
재고가 없는 것과 품절은 다르게 처리하고 싶다면?
쿠폰이 있고 없고에 따라서 할인을 처리한다면?
위와 같은 상황에서 Nullalbe 값 형식을 사용하면 될 것 같습니다.
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 리플렉션 - Reflection (0) | 2022.06.22 |
---|---|
[C#] event 키워드 (0) | 2016.12.23 |
[C#] Serialization - 객체 직렬화 (0) | 2016.10.29 |
[C#] yield 키워드 (0) | 2016.10.29 |
[C#] where & Generics (형식 제약 조건) (0) | 2016.10.29 |