목차.
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에 할당하는 코드입니다.
'프로그래밍 > C#' 카테고리의 다른 글
[C#] LINQ의 특징 및 활용 방법 (0) | 2024.06.12 |
---|---|
[C# 8.0] switch 식 (0) | 2024.02.08 |
[C#] 가변길이 매개변수 : params (0) | 2023.11.10 |
[C#] 박싱과 언박싱 (0) | 2023.11.09 |
[C#] 멀티스레드 프로그래밍 : Interlocked.CompareExchage (0) | 2023.08.09 |