C#/C#_기초강의
(C#) ref 참조에 의한 호출(call by reference)
코딩ABC
2023. 4. 30. 14:32
반응형
ref 키워드는 변수가 참조를 나타내거나 다른 개체의 별칭임을 나타냅니다.
매개변수에 ref 키워드를 사용하면 인수가 값이 아니라 참조로 전달됨을 나타냅니다.
호출하는 쪽의 매개변수에 ref를 사용하면, 호출된 메서드에서도 ref로 받아야 하며, 이 경우 ref로 전달된 매개변수를 통해서 호출할 쪽의 지역 변수의 값을 변경할 수 있습니다.
다음 예제는 두 개의 값을 교환하는 swap 메서드의 예입니다.
void swap(ref int x, ref int y)
{
int temp = x;
x = y;
y = x;
}
private void button1_Click(object sender, EventArgs e)
{
int a = 10, b = 20;
swap(ref a, ref b);
listBox1.Items.Add(String.Format("a={0}, b={1}", a, b));
}
}
매개 변수에 ref 키워드를 사용하면 ref를 사용한 매개 변수의 개수 만큼의 처리 결과를 지역 변수로 받을 수 있습니다.
아래의 inc 메서드는 매개변수로 ref 변수 3개를 사용하고 있습니다.
한 번 호출하면 3개의 매개 변수값이 1씩 증가되어 있음을 알 수 있습니다.
void swap(ref int x, ref int y, ref double z)
{
x++;
y++;
z++;
}
private void button1_Click(object sender, EventArgs e)
{
int a = 1, b = 2;
double c = 3.3;
swap(ref a, ref b, ref c);
listBox1.Items.Add(String.Format("a={0}, b={1},c={2}", a, b,c));
swap(ref a, ref b, ref c);
listBox1.Items.Add(String.Format("a={0}, b={1},c={2}", a, b, c));
}
반응형