⭐ params 키워드
하나의 메서드 매개변수로 개수가 정해지지 않은 인자들을 배열처럼 받을 수 있게 해주는 키워드입니다.
선언 형식
void Start()
{
int[] ints = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int a = Add(ints); //45
int b = Add(1, 5, 8, 3, 8, 7); //32
Debug.Log(a);
Debug.Log(b);
}
public int Add(params int[] ints)
{
int sum = 0;
foreach(var i in ints)
{
sum += i;
}
return sum;
}
출력 결과:
45
32
● params 키워드를 통해 인자 배열을 매개 변수로 선언할 수 있습니다.
○ params 가변 인자는 매개변수 목록의 맨 마지막에만 선언할 수 있습니다.
■ public void Add(int a, int b, params int[] ints) => 가능
■ public void Add(params int[] ints, int a, int b) => 불가능
● 호출자가 인수를 하나도 남기지 않으면 길이 0의 배열이 전달됩니다.
● 한 메서드에 하나만 사용할 수 있습니다.
● params 매개 변수는 1차원 배열이어야 합니다.
사용시 주의해야 할 점
● 너무 큰 데이터를 계속 params로 넘기면 배열 생성 비용이 생길 수 있습니다
● 오버로딩과 함께 쓸 때 모호해질 수 있으니 주의해야합니다.
public int TestNum(int a)
{
return a;
}
public int TestNum(params int[] ints)
{
return ints[0] + 5;
}
● 두 TestNum 메서드는 인자값으로 1개의 변수만을 받을 수 있기 때문에 모호해집니다.
'개발, IT > C#' 카테고리의 다른 글
| [유니티 / C#] 인덱서 (Indexer) (0) | 2025.09.23 |
|---|---|
| [유니티 / C# ] 캡쳐(Capture)와 클로저(Closure) (0) | 2025.09.23 |
| [유니티 / C#] 확장 메서드 (Extension Method) (0) | 2025.09.22 |
| [유니티 / C#] 대리자 (Delegate, Event, Action, Function) (0) | 2025.09.22 |
| [유니티 / C#] 제네릭 (Generic) (0) | 2025.09.19 |