메서드를 선언할 때 전달될 인자(argument)의 개수를 미리 알 수 없는 경우가 있습니다. 이럴 때 C#의 params 배열(매개변수 배열)이 유용하게 사용됩니다.
params 키워드 사용법
메서드 매개변수 앞에 params 키워드를 붙이면, 호출 시 쉼표로 구분된 가변 개수의 인자를 배열 형태로 전달받을 수 있습니다.
public int AddElements(params int[] arr) { }전체 예제 코드
다음은 params 키워드를 활용해 여러 개의 정수를 받아 합계를 계산하는 완전한 예제입니다.
using System;
namespace Program {
class ParamArray {
public int AddElements(params int[] arr) {
int sum = 0;
foreach (int i in arr) {
sum += i;
}
return sum;
}
}
class Demo {
static void Main(string[] args) {
ParamArray app = new ParamArray();
int sum = app.AddElements(300, 250, 350, 600, 120);
Console.WriteLine("The sum is: {0}", sum);
Console.ReadKey();
}
}
}실행 결과
The sum is: 1620
params 사용 시 주의사항
params키워드는 메서드 선언에서 마지막 매개변수에만 사용할 수 있습니다.- params 매개변수는 반드시 1차원 배열이어야 하며, 다차원 배열(예:
int[])에는 사용할 수 없습니다. - 호출 시 인자를 아예 전달하지 않거나,
null또는 배열 자체를 직접 넘기는 것도 가능합니다.
이처럼 params 키워드를 사용하면 오버로드를 여러 개 작성하지 않고도 유연하게 가변 인자를 처리할 수 있습니다.