C#/.NET(12): params 키워드는 무엇일까?
params 의 기능은?
params 키워드를 사용하면 동일한 유형의 매개변수를 메소드에 원하는 수만큼 전달할 수 있다.
[params 예시 코드]
using System;
namespace Params
{
internal class Program
{
static int Sum1(int[] numbers)
{
int sum = 0;
foreach(var number in numbers)
{
sum += number;
Console.Write($"{number}, ");
}
return sum;
}
static int Sum2(params int[] numbers) // params로 인자 전달
{
int sum = 0;
foreach(var number in numbers)
{
sum += number;
Console.Write($"{number}, ");
}
return sum;
}
static void Main(string[] args)
{
Console.WriteLine(Program.Sum1(new int[] { 1, 2, 3 }));
Console.WriteLine(Program.Sum2(4, 5, 6)); // params
}
}
}
[params 오류 예시 코드(1)]
params의 매개변수는 1차원 배열만 가능하다. 아래 코드는 매개변수의 타입을 리스트로 정했을 때 발생하는 syntax 에러이다.

[params 오류 예시 코드(2)]
params의 매개 변수 뒤에는 추가 매개 변수가 허용되지 않는다. 왜냐하면 컴파일러가 전달해야할 값의 시작과 끝 지점을 모르기 때문이다.

댓글남기기