안녕하세요. 2nan 입니다.
저번 C# 포스팅에서 변수선언시 변수타입 뒤에 ?가 붙은
Nullable변수에 대해서 살펴보았습니다.
2020/04/07 - [개발/C#] - C# Nullable 에 대해서(변수타입 뒤에 물음표)
오늘은 변수타입 뒤에 물음표가 아닌 ?? 연산자에 대해서 소개시켜드리려 합니다.
먼저 코드로 예를 살펴보겠습니다.
var A = "A";
var B = "B";
return A ?? B;
이런 경우에 어떤 값이 return이 되는걸까요??
먼저 ?? 연산자는 null 병합 연산자 라고 불립니다.
null 병합 연산자 ?? 는 왼쪽 피연산자가 null이 아니라면 왼쪽 피연산자의 값을 반환합니다.
즉 위에 경우에는 A가 null이 아니라면 왼쪽 피연산자인 A를 반환,
A가 null이라면 오른쪽 피연산자인 B를 반환합니다.
현재 변수 A에는 "A"라는 값이 할당되어있으니, 변수 A가 가진 값이 반환이 되겠죠??
하지만 만약 변수 A가 null값을 가지고 있다면 변수 B가 가진 값이 반환이 될겁니다.
익숙한 if문으로 간단하게 풀어서 써보면 이렇게 풀어볼 수 있겠네요.
if(A != null)
{
return A;
}
else
{
return B;
}
?? 연산자를 알아두면, 위의 if문보다 훨씬 간단하게 코드를 작성할 수 있겠네요.
그렇다면 이런 경우엔 어떻게 될까요??
var A = "A";
var B = "B";
var C = "C";
return A ?? B ?? C;
null 병합 연산자는 오른쪽 결합이기 때문에,
A ?? B ?? C 의 경우는 A ?? (B ?? C) 의 형태로 계산된다고 합니다.
즉, 위 코드의 결과는 A가 반환되고,
A만 null일 경우에는 B가 반환,
A와 B가 null일 경우에는 C가 반환됩니다.
이번에도 이해하기 쉽게 if문으로 풀어보겠습니다.
if(A != null)
{
return A;
}
else
{
if(B != null)
{
return B;
}
else
{
return C;
}
}
if문으로 사용해야 했던 코드를
한줄로 확! 줄여주니 앞으로 자주 쓰게 될 것 같습니다. ㅎㅎ
더 자세하게 알고 싶으신 분들은 아래 공식 사이트에 방문해 보시기 바랍니다.
https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/operators/null-coalescing-operator
공감이나 도움이 되셨다면, 공감버튼을 눌러주세요ㅎㅎ
질문이나 오타, 잘못된 내용 등은 댓글로 남겨주시면 감사하겠습니다 :)
'개발 > C#' 카테고리의 다른 글
C# - 닷넷 프레임워크(.Net FrameWork)와 C# (3) | 2020.06.16 |
---|---|
C# - 명령 프롬프트(CMD)로 컴파일 해보기(2) (0) | 2020.06.14 |
C# - 명령 프롬프트(CMD)로 컴파일 해보기(1) (0) | 2020.06.14 |
C# - 윈도우폼 자식 컨트롤 찾기 (2) | 2020.04.14 |
C# - Nullable 에 대해서(변수타입 뒤에 물음표) (5) | 2020.04.07 |
댓글