728x90
반응형

C#에서는 값이 존재하지 않을 가능성을 안전하게 처리하기 위해 Nullable 타입Null 조건부 연산자를 제공합니다. 이번 글에서는 이 두 가지 기능을 명확하게 이해하고 효과적으로 사용하는 방법을 살펴보겠습니다.


1. Nullable 타입이란?

값 타입에 null을 허용하는 타입으로, 값이 없음을 나타낼 수 있게 합니다.

 Nullable 타입 기본 사용법

int? nullableNumber = null;

if (nullableNumber.HasValue)
    Console.WriteLine(nullableNumber.Value);
else
    Console.WriteLine("값이 없습니다."); // 출력: 값이 없습니다.

2. Null 조건부 연산자 (?.) 란?

객체 참조가 null이 아닐 때만 멤버에 접근하도록 안전한 방식으로 코드를 작성하는 연산자입니다.

 Null 조건부 연산자 사용법

string text = null;

int? length = text?.Length;
Console.WriteLine(length); // 출력: (빈 값, null)

text = "Hello";
length = text?.Length;
Console.WriteLine(length); // 출력: 5

3. Nullable 타입과 Null 조건부 연산자 비교

항목 Nullable 타입 Null 조건부 연산자

용도 값 타입에 null 가능성 부여 참조 타입에서 안전하게 멤버 접근
주 사용 대상 값 타입 (int, double 등) 참조 타입 (객체, 문자열 등)

4. 실전 예제: Nullable 타입 활용하기

int? GetNullableInt(bool getNull)
{
    return getNull ? (int?)null : 42;
}

var result = GetNullableInt(true);
Console.WriteLine(result.HasValue ? result.Value.ToString() : "값이 없습니다.");
// 출력: 값이 없습니다.

5. 실전 예제: Null 조건부 연산자를 활용한 안전한 프로퍼티 접근

class Person
{
    public string Name { get; set; }
}

Person person = null;
string personName = person?.Name ?? "알 수 없음";
Console.WriteLine(personName); // 출력: 알 수 없음

person = new Person { Name = "Alice" };
personName = person?.Name ?? "알 수 없음";
Console.WriteLine(personName); // 출력: Alice

 요약

  • Nullable 타입: 값 타입에서 null을 표현 가능하게 함
  • Null 조건부 연산자: null 여부를 안전하게 검사하고 멤버에 접근할 수 있게 함
  • 코드 안정성과 가독성을 높이는 강력한 기능

 

728x90
반응형

+ Recent posts