본문 바로가기

C#

C# Nullable 연산자(??, ??=, ?.) 심층 이해

C#에서 Nullable 연산자는 null 값을 안전하게 처리하는 데 필수적인 도구입니다. 이번 글에서는 ??, ??=, 그리고 ?. 연산자의 작동 원리와 활용법을 자세히 살펴봅니다.

1. ?? 연산자 (null 병합 연산자)

?? 연산자는 왼쪽 피연산자가 null일 경우 오른쪽 값을 반환합니다. 간단히 기본값 설정에 유용합니다.

string name = null;
string displayName = name ?? "이름 없음";
Console.WriteLine(displayName); // 출력: 이름 없음

2. ??= 연산자 (null 병합 할당 연산자)

??= 연산자는 변수에 값이 없으면(즉, null일 때) 오른쪽 값을 할당합니다. 기존 값이 있으면 무시합니다.

string title = null;
title ??= "기본 제목";
Console.WriteLine(title); // 출력: 기본 제목

string otherTitle = "초기 제목";
otherTitle ??= "새 제목";
Console.WriteLine(otherTitle); // 출력: 초기 제목

3. ?. 연산자 (null 조건부 접근 연산자)

?. 연산자는 객체가 null이 아닐 때만 멤버에 접근하거나 메서드를 호출합니다. null일 경우 예외 없이 결과는 null이 됩니다.

Person person = null;
string personName = person?.Name;  // person이 null이므로 personName은 null

person = new Person { Name = "홍길동" };
personName = person?.Name;  // "홍길동"

이렇게 Nullable 연산자를 사용하면 널 참조 예외를 줄이고 코드 가독성도 높일 수 있습니다. 적재적소에 활용해 보시기 바랍니다.