널 조건부 연산자 ( Evlis[엘비스] 연산자 )
대상?. 연산자는 대상이 null 이면 null 을 리턴하고
대상이 존재하면 대상.멤버 의 값을 리턴하는 연산자입니다
아래는 이에 관한 간단한 예입니다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | static void Main(string[] args) { List<int> list = new List<int>(); list.Add(10); //List<int> list = null; int? numbers = list?.Count; Console.WriteLine(numbers); //1 } static void Main(string[] args) { //List<int> list = new List<int>(); //list.Add(10); List<int> list = null; int? numbers = list?.Count; Console.WriteLine(numbers); //null } | cs |
아래 코드는 null 병합 연산자 ?? 와 혼용한 형태인데
?? 연산자의 경우 ?? 앞의 값이 null 이면 ?? 의 뒤에 값을 리턴하고
?? 앞에 있는 값이 null 이 아니면 앞의 값을 그대로 사용합니다
1 2 3 4 5 6 7 8 9 10 11 | List<string> list = null; /* list = new List<string>(); list.Add("0"); list.Add("1"); list.Add("2");*/ int len = list?.Count ?? -1; Console.WriteLine(len); | cs |
결과 : -1
주석을 해지하면 결과는 3
반응형
'프로그래밍(Programming) > C#' 카테고리의 다른 글
확장명 메서드 : 기존 class 에 기능 추가하기(this) (2) (0) | 2018.09.07 |
---|---|
확장명 메서드 : 기존 class 에 기능 추가하기(this) (1) (0) | 2018.09.06 |
형식 매개 변수에 대한 제약 조건 (0) | 2018.09.06 |
=> 연산자 , 식 본문 정의 (0) | 2018.09.06 |
추상 속성 정의 (0) | 2018.09.02 |