더북(TheBook)

예제 12-6 분해 시 수행되는 평가 순서를 보여주기 위한 코드 ▶ TupleDeconstructionEvaluationOrderingExplained.cs

StringBuilder builder = new StringBuilder("12345");
StringBuilder original = builder;

StringBuilder targetForLength = builder;  ----- 할당 대상 평가
(StringBuilder, int) tuple =
    (new StringBuilder("67890"), 3);
builder = tuple.Item1;
targetForLength.Length = tuple.Item2;

 

Console.WriteLine(original);
Console.WriteLine(builder);

 


➊ 튜플 리터럴 평가
➋ 할당 대상으로 할당 수행

할당 대상이 지역 변수인 경우에는 추가적인 평가가 필요 없으므로 직접 값을 할당할 수 있다. 하지만 변수의 속성에 값을 할당하려면 첫 단계의 일부로 할당할 대상을 우선 평가해야 한다. 이 때문에 targetForLength 변수가 필요한 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.