C#

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

나도힐링 2021. 12. 22. 19:55
반응형

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}");

 

반응형