728x90
반응형

널 병합 할당자

C# 8.0에서 null 병합 할당 연산자 ??= 가 도입되었다.

 

??= 연산자

앞의 변수가 null 일 경우 뒤에 오는 피연산자의 값을 가져와 앞의 변수에 할당한다.

 

이때, 왼쪽 피연산자를 null이 아니라고 평가하면 ??= 연산자는 오른쪽 피연산자를 평가하지 않는다.

 

  • 변경 전
if (list == null)
{
   list = new List<int>();
}

 

  • 변경 후
static List<int> AddData(List<int> list, int? a, int? b)
{
    // 널 병합 연산자
    list ??= new List<int>();
    list.Add(a ??= 1);
    list.Add(b ??= 2);

    return list;
}

널 병합 연산자와 널 병합 할당자는 다음과 같이 사용 할 수 있다.

int? a = null;

// (1) 널 병합 연산자
int b = a ?? 1;  

// 위 문장 실행후: a = null, b = 1


// (2) 널 병합 할당 연산자
a ??= 100;        

// 위 문장 실행후: a = 100

참고 사이트

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

 

?? 및 ??= 연산자 - C# 참조

???? 및 ??= 연산자(C# 참조)and ??= operators (C# reference) 이 문서의 내용 --> null 병합 연산자 ??는 null이 아닌 경우 왼쪽 피연산자의 값을 반환합니다. 그렇지 않으면 오른쪽 피연자를 평가하고 그 결과��

docs.microsoft.com

http://www.csharpstudy.com/Latest/CS8-null-coalescing.aspx

 

C# 8 널 병합 할당자 - C# 프로그래밍 배우기 (Learn C# Programming)

C# 8 : C# 8 널 병합 할당자 (Null Coalescing Assignment) C# 8.0에서 NULL 병합 할당 연산자 ??= 이 도입되었는데, ??= 연산자 앞의 변수가 NULL 일 경우 뒤에 오는 피연산자의 값을 가져와 앞의 변수에 할당하게

www.csharpstudy.com

 

728x90
반응형