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
반응형
'개발이야기' 카테고리의 다른 글
C# 언어 심화 4편 – Span과 ReadOnlySpan 고성능 처리 방법 (16) | 2025.04.25 |
---|---|
C# 언어 심화 3편 – 익명 타입과 dynamic 활용법 (8) | 2025.04.25 |
C# 언어 심화 2편 – 람다식(Lambda)과 LINQ 고급 활용 (10) | 2025.04.25 |
C# 언어 심화 1편 – delegate와 event 실전 응용 (8) | 2025.04.24 |
자료구조 시리즈 11편 (6) | 2025.04.23 |