소개
C#에서 메서드는 다양한 매개변수를 사용하여 데이터를 전달받을 수 있습니다. 이번 글에서는 C#에서 사용되는 메서드 매개변수 중 in, ref, out, param에 대해 자세히 살펴보겠습니다.
in 매개변수
in 매개변수는 값을 읽기 전용으로 전달하는 데 사용됩니다. in 매개변수를 사용하면 메서드 내에서 해당 매개변수의 값을 변경할 수 없습니다. in 매개변수를 사용하면 데이터를 보호하고 의도하지 않은 변경을 방지할 수 있습니다.
public void Print(in int x)
{
Console.WriteLine(x);
}
위의 예제에서 Print() 메서드는 in 매개변수를 사용하여 값을 읽기 전용으로 전달받습니다. 메서드 내에서 x 변수의 값을 변경하려고 하면 컴파일 오류가 발생합니다.
ref 매개변수
ref 매개변수는 값을 참조 전용으로 전달하는 데 사용됩니다. ref 매개변수를 사용하면 메서드 내에서 해당 매개변수의 값을 변경할 수 있습니다. ref 매개변수를 사용하면 메서드에서 값을 반환하지 않아도 값을 변경할 수 있습니다.
public void Swap(ref int x, ref int y)
{
int temp = x;
x = y;
y = temp;
}
위의 예제에서 Swap() 메서드는 ref 매개변수를 사용하여 값을 참조 전용으로 전달받습니다. 메서드 내에서 x와 y 변수의 값을 변경하면 원래 변수의 값도 변경됩니다.
out 매개변수
out 매개변수는 값을 출력 전용으로 전달하는 데 사용됩니다. out 매개변수를 사용하면 메서드 내에서 해당 매개변수의 값을 반드시 초기화해야 합니다. out 매개변수는 메서드에서 값을 반환하기 전에 메서드 내에서 값을 변경할 수 있습니다.
public void Divide(int x, int y, out int quotient, out int remainder)
{
quotient = x / y;
remainder = x % y;
}
위의 예제에서 Divide() 메서드는 out 매개변수를 사용하여 값을 출력 전용으로 전달받습니다. 메서드 내에서 quotient와 remainder 변수의 값을 초기화한 후 메서드에서 값을 반환합니다.
param 매개변수
param 매개변수는 가변 길이 매개변수를 전달하는 데 사용됩니다. param 매개변수는 배열 형식으로 전달되며, 메서드 호출 시 전달된 값의 수에 따라 배열의 길이가 결정됩니다.
public void PrintNumbers(params int[] numbers)
{
foreach (int number in numbers)
{
Console.Write(number + " ");
}
}
위의 예제에서 PrintNumbers() 메서드는 param 매개변수를 사용하여 가변 길이 매개변수를 전달받습니다. 메서드 호출 시 전달된 값을 배열 형식으로 받아와서 출력합니다.
결론
C#에서는 다양한 메서드 매개변수를 사용하여 데이터를 전달받을 수 있습니다. in, ref, out, param 매개변수를 올바르게 사용하면 데이터를 효율적으로 전달하고 보호할 수 있습니다. 이번 글을 통해 C#에서 사용되는 메서드 매개변수에 대해 더욱 자세히 알아보았습니다.
'C#' 카테고리의 다른 글
C# Boxing (0) | 2023.06.12 |
---|---|
C# Jump 문 : break, continue, return, goto (0) | 2023.06.10 |
C# with 식 (0) | 2023.06.08 |
C# ? 연산자 : Null 조건부 연산자 (0) | 2023.06.02 |
C# 배열 인덱싱 (0) | 2023.06.01 |