Tuple
튜플 Tuple
- 괄호 기호의 간단한 구문을 사용하여 하나 이상의 속성을 가지는 개체를 만드는 형식
- C# 7.0부터 사용가능
Tuple 사용 이유
- 메서드의 매개 변수를 한 번에 여러개의 값을 전달하려면 사용자 정의 클래스 사용이 필요함.
- Tuple은 별도 클래스 생성없이 언어 차원에서 한번에 여러개의 값을 전달할 수 있게해줌.
선언 예제
기본 형태
var r = (1, 2, 3);
- 튜플은 다음과 같이 var과 괄호를 이용하여 간단하게 변수 선언할 수 있다.
- 선언된 변수들을 위 사진과 같이
item1,2,3
을 통해 사용할 수 있다.
이름 지정
- item을 통한 사용이 불편하다면 따로 이름을 지정해줄 수 있다
var r = (width : 1000, Height : 2000);
- 위 사진처럼 지정해 준 이름으로 사용해줄 수 있는것이 보인다.
형식 지정
- var로 자동으로 형식이 지정되게 아닌 직접 형식을 지정해 주고 싶으면 다음과 같이 사용할 수 있다.
(int, float) r1 = (1366, 768.5f); // 형식 지정
(int Width, float Height) r2 = (1366, 768.5f); // 이름 지정과 형식 지정 같이쓰기
Tuple 리턴
Tuple 리턴 기본 형태
- 리턴 값을 Tuple로 줄 수도 있다.
static (int, int) TupleReturn()
{
var r = (12, 3);
return r;
}
static void Main(string[] args)
{
var r = TupleReturn();
}
Tuple 리턴에 이름 값 지정
- 이름을 미리 지정해서 리턴 값으로 넘겨줄 수 있다.
static (int year, int month) TupleReturn()
{
var r = (2023, 5);
return r;
}
static void Main(string[] args)
{
var r = TupleReturn();
}
위 코드에서 함수로부터 값을 받은 r의 속성을 보면
year
과 month
로 되어있음을 볼 수 있다.
default 기본 값 리턴
default
키워드를 사용하여 리턴하면 지정해준 자료형식의 기본값이 리턴된다.
static (int, int) TupleReturn() => default;
static void Main(string[] args)
{
var r = TupleReturn();
Console.WriteLine(r); // int의 기본값이 0출력 (0, 0)
}
Tuple 분해 (Tuple Deconstruction)
- Tuple의 속성을 분해하여 각각의 변수로 만들 수 있다.
static void Main(string[] args)
{
var r = (30, 50);
var (a, b) = r;
Console.WriteLine(a); // 30
Console.WriteLine(b); // 50
}
- 위 코드에선 Tuple
r
이a
변수와b
변수로 분해되었다.
댓글남기기