params 키워드
가변 인수를 받는 메서드 매개변수. 매개변수 유형은 단일 차원 배열이어야 한다.
고객이 원하는 물건의 가격의 총액을 반환하는 메서드가 있다고 하자.
static double CheckOut(double a)
{
return a;
}
static double CheckOut(double a, double b)
{
return a + b;
}
static double CheckOut(double a, double b, double c)
{
return a + b + c;
}
static void Main(string[] args)
{
double tortal = CheckOut(3.99, 5.57, 15);
Console.WriteLine(tortal);
}
물건이 하나일 때, 2개일 때, 3개일 때 등 경우가 다양할 것이다. 그때마다 메서드를 새로 만들기는 번거로울 것이다.
params 키워드는 단일 메서드를 다양한 경우의 메서드가 필요한 경우에 사용할 수 있다.
static double CheckOut(params double[] prices)
{
double total = 0;
foreach (double price in prices)
{
total += price;
}
return total;
}
static void Main(string[] args)
{
double tortal = CheckOut(3.99, 5.75, 15, 1.00, 10.25);
Console.WriteLine(tortal);
}
params 키워드를 사용하기 위해서는 params라는 단어가 포함된 데이터 타입과 대괄호([ ])를 사용하면 된다. 그럼 매개변수는 배열이 된다. 총액을 반환하기 위해 지역변수를 생성한다. 그리고 각 루프에 대해 반복하여 가격들을 더하기 위해 foreach문을 사용한다.이제 매개변수의 갯수를 다양하게 입력할 수 있다.