타입: ID 변환만 허용됨
참조 지역 변수의 타입은 초기화 때 사용하는 변수와 동일한 타입이거나 두 타입 간에 ID 변환이 가능한 타입이어야 한다. 흔히 사용되는 다른 형태의 참조 변환은 허용되지 않는다. 다음 코드는 11장에서 살펴봤던 튜플 기반의 ID 변환을 이용하여 참조 지역 변수를 초기화하는 예다.
Note ≡
ID 변환에 대한 추가적인 내용은 11.3.3절을 살펴보기 바란다.
예제 13-5 참조 지역 변수 선언 시 ID 변환 ▶ RefLocalIdentityConversions.cs
(int x, int y) tuple1 = (10, 20);
ref (int a, int b) tuple2 = ref tuple1;
tuple2.a = 30;
Console.WriteLine(tuple1.x);
이 코드를 수행하면 tuple1과 tuple2가 같은 저장소 위치를 공유하고 있기 때문에 30을 출력한다. tuple1.x와 tuple2.a 그리고 tuple1.y와 tuple2.b는 동일한 저장소를 공유한다.
이 절에서는 지역 변수, 필드, 배열 요소를 이용하여 참조 지역 변수를 초기화하는 방법을 살펴봤다. C# 7에는 변수로 분류되는 새로운 표현식이 포함되었다. 바로 참조 반환에 의해 반환되는 변수다.