[C# 6.0] null 조건 연산자

eunjin lee·2023년 1월 7일
0

C# 9.0 프로그래밍

목록 보기
42/50

null 조건 연산자
: 참조 변수의 값이 null이라면 그대로 null을 반환하고, null이 아니라면 지정된 멤버를 호출한다.

✍ 참조변수의 멤버 접근 시 ?

        static List<int> list;
        static void Main(string[] args)
        {
            //list = new List<int>();

            if (list != null)
            {
                Console.WriteLine(list.Count);    
            }
            
            // 위의 if문은 아래의 코드처럼 축약될 수 있다.

            Console.WriteLine(list?.Count);
            //list가 null인 경우 Count를 호출하지 않는다.
        }

✍ 배열 인덱스 접근 시 ?

        static int[] arr;
        static void Main(string[] args)
        {
            Console.WriteLine(arr?[2]);
        }

✍ nullable 형식의 사용

int count = list?.Count // 컴파일 에러
// list가 null일 경우 null을 반환하는데 null은 int에 대입할 수 없다.

int? count = list?.Count; //정상 컴파일

✍ ??

int count = list?.Count ?? 0;
//ㅣlist?.가 null을 반환하면 ?? 연산자가 0을 반환하도록 함.

✍ 효율성 고려

list?.Add(5);
list?.Add(6);
list?.Add(7);

//위의 코드는 아래와 같다.

if(list != null)
	list.Add(5);

if(list != null)
	list.Add(6);

if(list != null)
	list.Add(7);
    
//같은 조건문이 반복되므로 차라리 아래와 같이 기존 방식을 쓰는 것이 낫다.

if(list!=null)
{
	list.Add(5);
	list.Add(6);
	list.Add(7);
}

0개의 댓글