더북(TheBook)

13.2.1 참조 지역 변수

이전에 사용했던 종이 조각의 비유를 계속 이어가 보자. 참조 매개변수를 이용하면 하나의 종이 조각을 두 개의 메서드에서 공유할 수 있다. 호출 측에서 사용한 종이 조각이 메서드 내의 매개변수가 사용하는 종이 조각과 동일하다. 참조 지역 변수(ref locals)는 이러한 아이디어에서 한 걸음 더 나아가서 기존의 변수가 사용하는 종이 조각을 함께 공유하는 새로운 지역 변수를 만들 수 있도록 해준다.

다음 예제는 서로 다른 변수를 각각 증가시킨 후 그 결과를 출력하는 다소 진부한 예제다. 변수의 선언과 초기화자 내에서 모두 ref 키워드를 사용했다는 것에 주목하기 바란다.

예제 13-2 두 개의 변수를 통해 증가 연산을 두 번 수행 ▶ RefLocalIntro.cs

int x = 10;
ref int y = ref x;
x++;
y++;
Console.WriteLine(x);

이 코드는 x 값을 두 번 증가시킨 것처럼 12를 출력한다.

변수로 분류할 수 있는 적절한 타입의 표현식 또한 참조 지역 변수를 초기화할 때 사용할 수 있다. 이런 예로는 배열 요소가 있다. 변경 가능한(mutable) 아주 큰 크기의 값 타입 배열이 있다고 가정하자. 참조 지역 변수를 이용하면 값을 수정하기 위한 불필요한 복사 작업을 피할 수 있다. 다음 코드는 튜플 타입의 배열을 생성한 후 추가적인 복사 없이 배열 요소의 값을 수정하는 예다.

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