더북(TheBook)

13.2.2 참조 반환

참조 변환(ref return)은 어떤 면에서는 어렵지 않게 이해할 수 있다. 앞서 살펴본 비유를 적용해 보자면, 메서드가 값을 반환하는 대신 종이 조각을 반환하도록 하는 아이디어를 구현한 것이다. 이러한 방법을 사용하려면, 반환 타입 앞에 ref 키워드를 추가하고 return 문의 뒤에도 ref 키워드를 추가해야 한다. 호출 측의 코드도 반환값을 받기 위해서 참조 지역 변수를 주로 사용한다. 이처럼 ref 키워드를 상당히 자유롭게 여기저기서 사용할 수 있기 때문에 수행하려는 작업이 무엇인지를 좀 더 명확히 할 수 있다. 다음 예제는 참조 반환을 사용하는 매우 단순한 예다. RefReturn 메서드는 전달된 변수를 반환한다.

예제 13-6 매우 단순한 참조 반환의 예 ▶ RefReturnSimple.cs

static void Main()
{
    int x = 10;
    ref int y = ref RefReturn(ref x);
    y++;
    Console.WriteLine(x);
}

static ref int RefReturn(ref int p)
{
    return ref p;
}

이 코드는 xy가 같은 종이 조각을 공유하기 때문에 11을 출력한다. 이는 다음과 같이 코드를 작성한 것과 동일하다.

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