C#에서는 params 키워드를 사용하여 메서드에 가변 개수의 인수를 전달할 수 있습니다. 이 기능을 활용하면 호출 시점에 전달할 인수의 개수를 자유롭게 정할 수 있어 코드의 유연성이 크게 향상됩니다.
params 키워드란?
params 키워드는 메서드 매개변수 선언 시 사용하며, 해당 매개변수가 동일한 타입의 인수를 임의의 개수만큼 받을 수 있음을 의미합니다. 컴파일러는 전달된 값들을 자동으로 배열로 변환해 줍니다.
정수들을 곱하는 메서드를 예로 들어 보겠습니다. params 키워드를 사용하면 int 값을 몇 개든 받을 수 있습니다.
static int Multiply(params int[] b)
위와 같이 선언하면 하나의 int 값으로도, 두 개의 int 값으로도 곱셈 결과를 구할 수 있습니다. 아래와 같이 같은 함수를 서로 다른 개수의 값으로 호출할 수 있습니다.
int mulVal1 = Multiply(5); int mulVal2 = Multiply(5, 10);
전체 예제 코드
다음은 C#에서 가변 인수가 실제로 어떻게 작동하는지 확인할 수 있는 완전한 코드입니다.
using System;
class Program {
static void Main() {
int mulVal1 = Multiply(5);
int mulVal2 = Multiply(5, 10);
Console.WriteLine(mulVal1);
Console.WriteLine(mulVal2);
}
static int Multiply(params int[] b) {
int mul = 1;
foreach (int a in b) {
mul = mul * a;
}
return mul;
}
}실행 결과는 다음과 같습니다.
5 50
params 사용 시 주의사항
params 키워드를 사용할 때는 몇 가지 규칙을 기억해야 합니다.
- 메서드 하나에는 params 매개변수를 하나만 선언할 수 있습니다.
- params 매개변수는 반드시 매개변수 목록의 마지막에 위치해야 합니다.
- 가변 인수를 전혀 전달하지 않으면 해당 매개변수는 빈 배열로 처리됩니다.
이처럼 params 키워드를 활용하면 오버로드 메서드를 여러 개 작성하지 않고도 다양한 개수의 인수를 처리할 수 있는 유연한 메서드를 손쉽게 만들 수 있습니다.