12.1.1 새로운 변수로 분해
이전에도 한 문장 내에서 여러 개의 변수를 선언하는 것은 가능했지만, 이 경우 모든 변수가 동일한 타입이어야 했다. 나는 가독성을 위해 하나의 문장 내에서는 하나의 변수만 선언하는 방식을 고수해 왔다. 하지만 하나의 문장 내에서 여러 개의 변수를 선언하고, 초기화할 값의 출처가 동일해서 단번에 초기화까지 완료할 수 있다면, 그 또한 아주 멋질 것 같다. 특히, 초기화하려는 값의 출처가 함수의 호출 결과라면 더욱더 그렇다. 함수를 여러 번 호출하는 것을 피하기 위해서 추가적인 변수를 선언하지 않아도 되기 때문이다.
가장 이해하기 쉬운 형태는 매개변수 예제나 튜플 타입처럼 각 변수에 명시적으로 타입을 지정하는 방식이다. 앞서 추가적인 변수가 필요하다고 이야기한 부분을 좀 더 명확하게 이해하기 위해 튜플을 반환하는 메서드와 반환된 튜플을 분해하는 예를 살펴보자.
예제 12-2 메서드 호출 후 반환값을 세 개의 변수로 분해 ▶ TupleDeconstructionExplicitTyping.cs
static (int x, int y, string text) MethodReturningTuple() => (1, 2, "t");
static void Main()
{
(int a, int b, string name) = MethodReturningTuple();
Console.WriteLine($"a: {a}; b: {b}; name: {name}");
}