CS/C#

[C#] null 병합 연산자, ??

Mirab 2021. 12. 5. 19:14
null 병합 연산자란?

 

null 병합 연산자?? 입니다.

?? 는 null 조건부 연산자처럼 객체나 변수의 null 검사를 간결하게 해 줍니다.

 

두 개의 피연산자를 받아들이고

왼쪽 피연산자가 null이라면 오른쪽 피연산자를 반환합니다.

왼쪽 피연산자가 null이 아니라면 왼쪽 피연산자를 반환합니다.

 

이번에 C#을 공부하면서 느낀 건 null과 관련된 형식에는? 기호가 들어갑니다.

Nullable, ?. , ?[]도?로 시작합니다.

C, C++에서는 경험하지 못한 새로운 문법입니다.

 

말보다는 한 번 보는 것이 이해가 잘 된다고 생각합니다.

int? num = null;
Console.WriteLine($"{num ?? 0}"); // num이 null이기 때문에 0이 출력됩니다.

string str = "hi";
Console.WriteLine($"{str ?? "default"}"); // str은 null이 아니기 때문에 hi가 출력됩니다.
연습 예제
using System;

class Program
{
    static void Main(string[] args)
    {
        int? num = null;
        Console.WriteLine($"{num ?? 0}");

        num = 2021;
        Console.WriteLine($"{num ?? 0}");

        string str = null;
        Console.WriteLine($"{str ?? "Default"}");

        str = "Arcane";
        Console.WriteLine($"{str ?? "Default"}");
    }
}
실행결과
0
2021
Default
Arcane

'CS > C#' 카테고리의 다른 글

[C#] 클래스  (0) 2021.12.11
[C#] 문자열 찾기 함수들  (0) 2021.12.10
[C#] var  (0) 2021.12.10
[C#] foreach  (0) 2021.12.05
[C#] IsNullOrEmpty  (0) 2021.11.19