728x90

목차.

  1. Null 병합 할당 연산자(??=)란?
  2. Null 병합 할당 연산자(??=) 예제
  3. Null 병합 연산자(??)와의 차이

 

Null 병합 할당 연산자란?

Null 병합 할당 연산자는 C# 8.0부터 도입된 문법입니다.

형태는??= 로 많이 생소하게 생겼습니다.

 

간단하게 설명하자면??=(Null 병합 할당 연산자) 앞에 있는 변수가 Null일 경우??= 뒤에 있는 피 연산자를 앞의 변수에 할당시켜 줍니다.

 

기존에는 if문을 사용해서 Null을 체크하는 방식으로 코드를 작성해야 했기 때문에 코드가 길어졌지만 이제 한 줄로 간단하게 구현이 가능해졌습니다.

 

 

?? 및?? = 연산자 - null 병합 연산자 - C#

'?? ' 및 '?? =' 연산자는 C# null 병합 연산자입니다. null이 아닌 경우 왼쪽 피연산자의 값을 반환합니다. 그렇지 않으면 오른쪽 피연산자의 값을 반환합니다.

learn.microsoft.com

 

Null 병합 할당 연산자 예제

 

기존

List<int> numbers;

if(list == null)
    list = new List<int>();
    
list.Add(5);

 

list가 null인지 체크하고 null이라면 원하는 요소를 할당하도록 코드를 많이 작성했었습니다.

 

Null 병합 할당 연산자 사용 시

List<int> numbers;

(numbers ??= new List<int>()).Add(5);

 

 

코드를 4줄에서 2줄로 줄일 수 있었습니다.

 

간단하게 사용했지만 다양한 방법으로도 활용이 가능할 것 같습니다.

하지만 가독성 측면에서는 기존 방식이 더 좋은 것 같다는 생각이 드네요.

 

Null 병합 연산자(??)와의 차이

 

Null 병합 연산자는 연산자(??) 앞의 변수가 null 일 때, 연산자 뒤의 값을 리턴하는 기능을 합니다.

반면 Null 병합 할당 연산자(??=)는 앞의 변수가 null일 때, 연산자 뒤의 값을 연산자 앞의 변수에 할당하는 기능을 합니다.

 

Null 병합 연산자

int? a = null;

int b = a??5;

 

a가 null이라면 5를 return 해주는 코드입니다.

 

Null 병합 할당 연산자

 

int? a =null;
int b =5;

a??=b;

 

a가 null이라면 b를 a에 할당하는 코드입니다.

디버그-모드로-확인했을때-a에-5가-할당된-모습
디버그 모드로 확인했을때,&nbsp; a에 5가 할당된 모습

 

728x90

+ Recent posts