C#에서 값 튜플(ValueTuple)은 기존 Tuple 클래스를 값 형식(value type)으로 표현한 것입니다. 참조 형식인 일반 Tuple과 달리 스택에 할당되어 성능상 이점이 있으며, C# 7.0부터 도입되었습니다.
System.ValueTuple 패키지 설치
값 튜플을 사용하려면 System.ValueTuple 패키지가 필요합니다. .NET Framework 4.7 이상 또는 .NET Core 2.0 이상에서는 기본으로 포함되어 있지만, 하위 버전에서는 NuGet 패키지를 직접 추가해야 합니다.
NuGet 패키지 추가 방법
- Visual Studio에서 해당 프로젝트를 엽니다.
- 솔루션 탐색기(Solution Explorer)에서 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
- "NuGet 패키지 관리(Manage NuGet Packages)"를 선택합니다.
- NuGet 패키지 관리자 화면이 열리면 찾아보기(Browse) 탭을 클릭합니다.
- 검색창에 "ValueTuple"을 입력하고 검색합니다.
System.ValueTuple패키지를 찾아 설치합니다.
값 튜플 예제 코드
다음은 값 튜플을 선언하고 활용하는 간단한 예제입니다.
using System;
class Program {
static void Main() {
// 값 튜플 생성
var val = (5, 50, 500, 5000);
Console.WriteLine("이 프로그램을 실행하려면 System.ValueTuple 패키지가 필요합니다!");
// Item 속성으로 요소 접근
if (val.Item2 == 50) {
Console.WriteLine(val);
}
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
(5, 50, 500, 5000)
값 튜플의 주요 특징
- 값 형식: 구조체(struct) 기반으로 동작하여 힙 할당과 가비지 컬렉션 부담이 줄어듭니다.
- 요소 이름 지정 가능:
var val = (a: 5, b: 50);처럼 각 요소에 의미 있는 이름을 붙일 수 있습니다. - 간결한 문법: 괄호
()만으로 여러 값을 손쉽게 묶어 반환하거나 전달할 수 있습니다. - 변경 가능(Mutable): 일반 Tuple과 달리 요소 값을 수정할 수 있습니다.
값 튜플은 메서드에서 여러 값을 반환해야 할 때 별도의 클래스나 구조체를 정의하지 않고도 간편하게 처리할 수 있어 실무에서 널리 활용됩니다.