C#에서 참조에 의한 매개변수 전달은? ref

ref 키워드를 매개변수 앞에 붙여주면 된다.

static void Swap(ref int a, ref int b)
{
		int temp = b;
		b = a;
		a = temp;
}

메소드 호출시

int x = 3;
int y = 4;
Sqap(ref x, ref y);

메소드의 결과를 참조로 반환하기

앞에서 매개변수를 메소드에 참조로 전달하는 방법에 알아보았다면, 이번에는 메소드의 결과를

참조로 반환하는 참조 반환값(ref return)에 대해 살펴보겠습니다.

참조 반환값을 이용하면 메소드의 호출자로 하여금 반환받은 결과를 참조로 다룰 수 있도록 합니다.

이러한 메소드를 선언하는 방법은 다음과 같습니다. ref 한정자를 이용해서 메소드를 선언하고,

return 문이 반환하는 변수 앞에도 ref키워드를 명시해야 합니다.

class SomeClass
    {
        int SomeValue = 10;

        public ref int SomeMethod() // ref 키워드로 메소드를 한정합니다.
        {
            //~~ 코드로직
            return ref SomeValue;
            // return 문을사용할 때 ref 키워드를 반환할
            // 필드나 객체 앞에 붙여줍니다.
        }
    }