프로그래밍(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


반응형