본문 바로가기
C# 공부

tuple

by Dev_Hugh 2021. 8. 22.
728x90
반응형

Study about tuple

Tuple

  • 여러 필드를 담을 수 있는 구조체로 형식의 이름을 갖지 않고 임시적으로 사용할 복합 데이터 형식 선언에 적합하다
  • 튜플은 명명되지 않은 선언 즉 필드 이름을 지정하지 않은 선언과 명명된 선언 다 가능
public static void Main()
{
    var tuple = (123, 789);
    Console.WriteLine($"{tuple.Item1}, {tuple.Item2}");

    var tuple2 = (Name: "Hugh", Age:23);
    Console.WriteLine($"{tuple2.Name},{tuple2.Age}");
}
  • 컴파일러가 튜플의 모양을 보고 직접 형식을 결정하도록 var를 이용하여 선언한다.
  • 튜플은 괄호 사이에 두 개 이상의 필드를 지정하면된다.
public static void Main()
{
    var tuple = (Name: "Hugh", Age:23);
    // 모든 필드 분해
    var(name, age) = tuple;
    Console.WriteLine($"{name},{age}");
    // 일부만 분해
    var(name2, _) = tuple;
    Console.WriteLine($"{name2}");
}
  • 이런식으로 튜플을 분해할수있다.
  • 모든 필드를 분해하지 않을수도 있다
var unnamed = ("SuperMan", 9999);
var named = (Name: "Hugh", Age: 23);

named = unnamed;
Console.WritedLine($"{named.Name}, {named.Age}");

named = ("WonderWoman", 8888);
unnmaed = named;
Console.WriteLine($"{unnamed.Name}, {unnamed.Age}");
  • unnamed 와 named는 필드에 할당된 type이 string int 로 같다
  • 이럴경우 명명되지 않은 튜플과 명명된 튜플 사이의 할당이 가능하다.
  • System.ValueType 추가 패키지를 받으면 Tuple 기능 사용 가능
728x90
반응형

'C# 공부' 카테고리의 다른 글

exception  (0) 2021.08.25
interface  (0) 2021.08.25
static  (0) 2021.08.22
inheritance  (0) 2021.08.22
class 02  (0) 2021.08.22