12.1.2 분해 시 기존 변수나 속성에 값을 할당
앞의 절에서 분해에 대한 대표적인 예는 거의 다 살펴봤다. 이번 절에서는 그중 일부만을 발췌한 다음 예를 사용할 것이다.
var tuple = (10, "text");
int e;
string f;
(e, f) = tuple;
이 경우에 컴파일러는 분해 작업을 적절한 초기화 작업을 수행하는 것으로 해석하지 않고, 순차적인 할당문으로 해석한다. 이는 앞서 살펴본 바와 같이 임시 변수를 사용하지 않아도 된다는 장점을 제공한다. 다음 예는 앞서 사용했던 MethodReturningTuple()을 재사용하여 새롭게 작성했다.
예제 12-3 분해 시 기존 변수에 값을 할당 ▶ TupleDeconstructionAssignments.cs
static (int x, int y, string text) MethodReturningTuple() => (1, 2, "t");
static void Main()
{
➊
int a = 20;
int b = 30;
string name = "before";
Console.WriteLine($"a: {a}; b: {b}; name: {name}");
(a, b, name) = MethodReturningTuple(); ----- 분해를 통해 세 개의 변수가 값을 할당
Console.WriteLine($"a: {a}; b: {b}; name: {name}"); ----- 새로운 값을 출력
}
➊ 세 개의 변수를 각기 선언, 초기화 후 사용