C#고급 주제

nullable reference type 기본

null 안전성을 더 엄격하게 관리하기 위해 C#에서 제공하는 nullable reference type 문법과 해석 규칙입니다.

마지막 수정 2026년 3월 16일

기본 패턴

csharp
#nullable enable

string name = "Mina";
string? nickname = null;

if (nickname is not null)
{
    Console.WriteLine(nickname.Length);
}

설명

  • 참조형도 null 가능 여부를 타입으로 구분할 수 있습니다.
  • string은 null이 아니어야 하는 값, string?는 null일 수 있는 값입니다.
  • 컴파일러 경고를 통해 null 접근 가능성을 미리 찾는 데 도움이 됩니다.

짧은 예제

csharp
public void PrintName(string? value)
{
    if (value is null) return;
    Console.WriteLine(value.ToUpper());
}

빠른 정리

문법의미
stringnull 아님
string?null 가능
#nullable enablenullable 분석 사용

주의할 점

! null-forgiving 연산자는 경고를 숨길 뿐 실제 null을 막아 주지는 않습니다. 원인을 이해하고 최소한으로만 쓰는 편이 좋습니다.