본문 바로가기

C#

C# Nullable타입과 Null 조건 연산자 그리고 ?? 연산자

반응형

Nullable 타입(?)

  • int, short, float, .... 등의 데이터 형식에 null 값을 허용하지 않지만 Nullable 타입을 사용하면 null 값이 허용
  • ?(물음표) 또는 Nullable<T>로 사용할 수 있지만 ?(물음표) 사용을 권장
int i = null; // 오류
int? i = null; // null 가능
Nullable<int> i = null; // 두 번째 코드와 동일

 


Null 조건 연산자(?.)

  • ?(물음표) 앞의 객체가 Null이면 Null을 리턴
  • ?(물음표) 앞의 객체가 Null이 아니면 .(점) 다음 코드를 실행
List<int> list = null;
int? count = list?.Count;
Console.WriteLine($"count: {count}");

 

List<int> list = new List<int>();
int? count = list?.Count;
Console.WriteLine($"count: {count}");

 


?? 연산자

  • Null 조건 연산자의 ?(물음표) 앞의 객체가 Null이면 ?? 연산자 뒤의 값을 리턴
List<int> list = null;
int? count = list?.Count ?? 1;
Console.WriteLine($"count: {count}");

 

반응형

'C#' 카테고리의 다른 글

C# 클래스 형변환과 is, as  (0) 2021.12.23
C# 클래스 상속과 오버라이드 그리고 추상화  (0) 2021.12.23
C# 십진수를 이진수로 출력  (0) 2021.12.21
C# 이스케이프 시퀀스와 @ 기호  (0) 2021.12.21
C# 변수와 메모리  (0) 2021.12.21