프로그래밍(Programming)/C#
?. 널 조건부 연산자 와 null 병합 연산자
3DMP
2018. 9. 6. 19:13
널 조건부 연산자 ( 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
반응형