더북(TheBook)

Note ≡ C# 7.0 버전 이전의 Tuple<T> 클래스

C# 7.0 버전 이전에는 튜플을 지원하지 않아 Tuple<T> 클래스를 사용하기도 했습니다. Tuple 클래스를 사용하면 변수 하나에 여러 데이터를 한 번에 저장할 수 있어 편리합니다.

 

> var tp = new Tuple<string, bool, decimal>("철수", true, 1_000); 
> $"{tp.Item1}(초등학생 : {tp.Item2})가 {tp.Item3:C0}원짜리 빵을 샀다."
"철수(초등학생 : true)가 ₩1,000원짜리 빵을 샀다."

 

Tuple<T> 클래스를 사용하면 Tuple<string, bool, decimal> 형태로 데이터 형식을 하나 이상 저장할 수 있는 개체가 만들어집니다. 각 개체는 대입된 순서에 따라 Item1, Item2, ... 형태의 속성으로 값에 접근할 수 있습니다. Tuple<T> 클래스 예제를 하나 더 사용해 보겠습니다.

 

> //① 생성자를 사용한 튜플 개체 생성
> var one = new Tuple<int>(1234);
> var two = new Tuple<int, string>(1, "C#");
> var many = new Tuple<int, string, string>(2019, "C#", "8.0");
>
> //② Tuple.Create 메서드를 사용한 튜플 개체 생성
> var tuple = Tuple.Create(DateTime.Now.Year, "C# 8.0");
>
> //Tuple로 생성된 개체는 Item1, Item2, Item3 순서의 속성으로 접근
> Console.WriteLine($"{tuple.Item1} - {tuple.Item2}");
2019 - C# 8.0

 

처럼 Tuple.Create() 메서드의 생성자에 값을 넣은 후 그 값의 형식을 유추해서 자동으로 튜플 개체를 만들 수도 있습니다.

C# 7.0 버전 이후로는 Tuple 클래스의 기능 자체가 C# 언어에 포함되어 괄호 기호로 바로 튜플 리터럴을 생성할 수 있습니다. 따라서 Tuple 클래스보다는 언어에 내장된 튜플 리터럴과 튜플 반환의 기능을 사용합니다.

이 강의에서는 C# 7.0 버전의 가장 큰 특징인 튜플을 정리해 보았습니다. 튜플은 따로 데이터 형식을 사용하지 않고도 데이터를 하나 이상 반환값으로 전달받을 수 있어 편리합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.