C#에서 튜플을 빈(비어 있는) 상태로 초기화하려면 다음과 같이 변수를 선언만 하면 됩니다.
Tuple<string, string> myTuple;
이렇게 선언만 한 튜플은 아직 인스턴스가 생성되지 않았기 때문에 실질적으로 null 상태입니다. 따라서 튜플의 값을 사용하기 전에는 반드시 null 여부를 확인하는 것이 안전합니다.
튜플의 null 값 확인 예제
아래 예제는 튜플을 생성할 때 두 번째 요소에 null을 할당한 후, 각 요소(Item1, Item2)의 값을 조건문으로 확인하는 방법을 보여줍니다.
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
Tuple<int, string> tuple = new Tuple<int, string>(10, null);
if (tuple.Item1 == 10) {
Console.WriteLine(tuple.Item1);
}
if (tuple.Item2 == null) {
Console.WriteLine("Item is null");
}
}
}
}코드 설명
- Item1: 첫 번째 요소에 정수 10이 저장되어 있으므로 조건식이 참이 되어 화면에
10이 출력됩니다. - Item2: 두 번째 요소가 null이므로
"Item is null"이라는 메시지가 출력됩니다.
실행 결과는 다음과 같습니다.
10 Item is null
참고: C# 7.0 이상에서는 ValueTuple 활용
C# 7.0부터는 기존의 Tuple 클래스 대신 더 간결하고 성능이 좋은 ValueTuple(값 튜플) 문법을 사용할 수 있습니다. 값 튜플은 참조 형식이 아닌 값 형식으로 스택에 할당되므로 가비지 컬렉션 부담이 적습니다.
// 기본값으로 초기화된 값 튜플
(int, string) valueTuple = default;
if (valueTuple.Item1 == 0) {
Console.WriteLine("첫 번째 요소는 기본값입니다.");
}이처럼 default 키워드를 사용하면 값 튜플도 손쉽게 빈 상태로 초기화할 수 있으며, 명명된 요소를 활용하면 코드 가독성을 더욱 높일 수 있습니다.