12.1 튜플 분해
C# 7은 두 가지 분해 방법을 제공하는데, 하나는 튜플 전용이고 다른 하나는 튜플을 제외한 다른 모든 타입을 위한 것이다. 이 둘은 문법적으로도 동일하고 일반적인 기능 또한 거의 동일하다. 하지만 이 둘을 추상화의 관점에서 살펴보면 꽤나 혼돈스러울 수 있다. 우선 튜플부터 살펴볼 텐데, 튜플 전용 기능도 함께 살펴볼 것이다. 12.2절에서는 동일한 아이디어를 다른 타입에 어떻게 적용하는지 다룰 것이다. 다음 예제는 분해에 대한 몇 가지 기능을 보여주는데, 각각에 대해 좀 더 자세히 살펴보자.
예제 12-1 튜플을 이용한 분해 ▶ TupleDeconstructionOverview.cs
var tuple = (10, "text"); ----- (int, string) 타입의 튜플 생성
var (a, b) = tuple; ----- 새로운 변수 a, b로 암시적 분해
(int c, string d) = tuple; ----- 새로운 변수 c, d로 명시적 분해
➊
int e;
string f;
(e, f) = tuple;
➋
Console.WriteLine($"a: {a}; b: {b}");
Console.WriteLine($"c: {c}; d: {d}");
Console.WriteLine($"e: {e}; f: {f}");
➊ 이미 존재하는 변수로 분해
➋ 분해 작업 확인