1 분 소요

튜플 Tuple

  • 괄호 기호의 간단한 구문을 사용하여 하나 이상의 속성을 가지는 개체를 만드는 형식
  • C# 7.0부터 사용가능

Tuple 사용 이유

  • 메서드의 매개 변수를 한 번에 여러개의 값을 전달하려면 사용자 정의 클래스 사용이 필요함.
  • Tuple은 별도 클래스 생성없이 언어 차원에서 한번에 여러개의 값을 전달할 수 있게해줌.

선언 예제

기본 형태

var r = (1, 2, 3);
  • 튜플은 다음과 같이 var과 괄호를 이용하여 간단하게 변수 선언할 수 있다.

1

  • 선언된 변수들을 위 사진과 같이 item1,2,3을 통해 사용할 수 있다.

이름 지정

  • item을 통한 사용이 불편하다면 따로 이름을 지정해줄 수 있다
var r = (width : 1000, Height : 2000);

image

  • 위 사진처럼 지정해 준 이름으로 사용해줄 수 있는것이 보인다.

형식 지정

  • 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의 속성을 보면

image

yearmonth로 되어있음을 볼 수 있다.

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 ra변수와 b변수로 분해되었다.

태그:

카테고리:

업데이트:

댓글남기기