C#

연산자 ?? , ??=

전용 2021. 8. 6. 11:32

연산자 ??

 

null 병합 연산자 ??는 null이 아닌 경우 왼쪽 피연산자의 값을 반환합니다. 그렇지 않으면 오른쪽 피연자를 평가하고 그 결과를 반환합니다. 왼쪽 피연산자가 null이 아닌 것으로 평가되면 ?? 연산자는 오른쪽 피연산자를 평가하지 않습니다.

 

예제코드 및 결과

EX1)

a 가 null 이고 b는 null이 아닐 때
a가 null이기 때문에 b 출력

 

EX2)

a가 null이 아닐 때
a가 null이 아니기 때문에 a 출력

 

연산자 ??=

 

C# 8.0 이상에서 사용할 수 있는 null 병합 할당 연산자 ??=는 왼쪽 피연산자가 null로 계산되는 경우에만 오른쪽 피연산자의 값을 왼쪽 피연산자에 대입합니다. 왼쪽 피연산자가 null이 아닌 것으로 평가되면 ??= 연산자는 오른쪽 피연산자를 평가하지 않습니다.

 

예제코드 및 결과

EX1)

a가 null 일 때, a에 b를 대입
b가 대입

 

EX2)

a가 null 아니기 때문에 대입되지 않음
원래 가지고 있던 값 출력

참고자료

https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/operators/null-coalescing-operator

https://velog.io/@jinuku/C-및-.-연산자