반응형
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));
}
반응형
'C# > C#_기초강의' 카테고리의 다른 글
(C#) 명명된 인수 named arguments (0) | 2023.05.01 |
---|---|
(C#) ref, out 참조로 인수 전달하기 (0) | 2023.04.30 |
(C#) params 가변 개수의 메서드 매개변수 사용하기 (0) | 2023.04.29 |
(C#) 메서드 오버로딩 method overloadding (0) | 2023.04.27 |
(C#) 1차원 배열의 요소를 앞으로 1칸씩 이동하기 (0) | 2023.04.24 |