예제 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 변수가 필요한 것이다.

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