ref란?
참조에 의한 매개 변수 전달, 값이 할당된 변수를 사용해야 한다
void Swap(int x, int y)
{
int temp = y;
int y = x;
int x = temp;
}
void main()
{
int x = 3;
int y = 4;
Swap(x,y);
print(x,y); //결과 x : 3, y : 4
}
Swap메서드를 통해 x,y값이 바꾸길 바랬지만 바뀌지 않는다
ref키워드를 매개 변수 앞에 붙여주기만 하면 된다
void Swap(ref int x, ref int y)
{
int temp = y;
int y = x;
int x = temp;
}
void main()
{
int x = 3;
int y = 4;
Swap(ref x, ref y);
print(x, y); //결과 x : 4, y : 3
}
int x, y에는 값 초기화 필요!
out이란?
출력 전용 매개 변수, 할당된 변수에 값을 줘야 함, 값 초기화 필요 없음
void Swap(out int x, out int y)
{
x = 3;
y = 4;
int temp = y;
int y = x;
int x = temp;
}
void main()
{
int x; //값 초기화 필요없음
int y;
Swap(out x, out y);
print(x, y); //결과 x : 4, y : 3
}
ref 와 out의 차이점
ref 참조는 반드시 변수가 초기화 되어서 전달 되어야 하고
out 참조는 변수 초기화 하지 않아도 전달이 된다