더북(TheBook)

참조 지역 변수를 사용할 때는 몇 가지 제약 사항이 있다. 대부분의 제약 사항은 비교적 명확하기 때문에 특별히 문제가 되지 않지만, 어떤 제약 사항들이 있는지를 미리 살펴 두면 불필요하게 다른 대안을 찾는 시도를 하지 않을 수 있으므로 충분히 가치가 있을 것이다.

 

 

초기화: 한 번에 하나씩 그리고 선언할 때만(C# 7.3 이전의 경우)

참조 지역 변수는 선언할 때 함께 초기화되어야 한다. 예를 들어 다음 코드는 유효하지 않다.

int x = 10;
ref int invalid;
invalid = ref int x;

또한, 참조 지역 변수를 다른 변수의 별칭으로 변경할 수도 없다(앞서 종이 조각의 비유로 생각해 보면, 이름을 지우개로 지우고 다른 이름을 쓸 수는 없다는 것이다). 물론 동일한 변수를 여러 번 선언하는 것은 가능하다. 예를 들어 예제 13-3에서는 루프 내에서 참조 지역 변수를 선언했다.

for (int i = 0; i < array.Length; i++)
{
    ref var element = ref array[i];
    ...
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.