C# 매개변수 활용: ref, out, in, params
이전 글에서는 C#의 함수와 메서드에 대한 기본적인 개념과 작성 방법을 알아보았습니다. 이번 글에서는 C#의 특별한 매개변수 키워드들인 ref, out, in, params에 대해 상세하게 알아보겠습니다.
1. ref 키워드
ref 키워드는 메서드에 변수를 참조로 전달할 때 사용됩니다. 메서드 내에서 이 변수의 값을 변경하면 호출자에 있는 원본 변수의 값도 변경됩니다.
1.1 ref 예제
public void ModifyValue(ref int value)
{
value *= 2;
}
int originalValue = 10;
ModifyValue(ref originalValue);
Console.WriteLine(originalValue); // 결과: 20
2. out 키워드
out 키워드는 초기화되지 않은 변수를 메서드에 전달할 때 사용됩니다. 메서드는 이 변수에 값을 할당해야 하며, 이렇게 할당된 값을 호출자에게 반환합니다.
2.1 out 예제
public void GetDimensions(out int width, out int height)
{
width = 10;
height = 20;
}
int w, h;
GetDimensions(out w, out h);
Console.WriteLine($"Width: {w}, Height: {h}"); // 결과: Width: 10, Height: 20
3. in 키워드
in 키워드는 변수를 참조로 메서드에 전달할 때 사용되지만, 그 변수의 값을 메서드 내에서 변경할 수 없습니다. 따라서 읽기 전용 참조로 사용됩니다.
3.1 in 예제
public void DisplayValue(in int value)
{
Console.WriteLine($"Value is: {value}");
// value = 50; // 이렇게 값을 변경하려고 하면 컴파일 에러가 발생합니다.
}
int myValue = 30;
DisplayValue(in myValue); // 결과: Value is: 30
4. params 키워드
params 키워드를 사용하면 가변 개수의 인수를 하나의 매개변수로 전달할 수 있습니다. 이 매개변수는 배열 형태로 전달됩니다.
4.1 params 예제
public int CalculateSum(params int[] numbers)
{
int sum = 0;
foreach (int num in numbers)
{
sum += num;
}
return sum;
}
int result = CalculateSum(1, 2, 3, 4, 5);
Console.WriteLine(result); // 결과: 15
5. 결론
ref, out, in, params 키워드를 통해 C#은 다양한 방식으로 메서드에 데이터를 전달할 수 있게 해줍니다. 이러한 키워드들을 활용하여 유연하고 효과적인 프로그래밍을 할 수 있습니다.
참고 자료
- Microsoft 공식 문서: 메서드 매개 변수 (https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/method-parameters)
함께 보면 좋은 이전 게시글
- C# 변수와 상수 이해하기: 선언, 할당, 사용
- C# 함수/메소드 기본 개념 및 작성 방법
- C# 배열 사용하기: 선언, 초기화, 접근 방법
- C# 리스트(List) 사용하기: 선언, 초기화, 접근 방법 및 주요 메서드
- C#에서의 예외 처리 방법: Exception, throw
이 글이 도움이 되셨다면 공유 부탁 드립니다.