마이크로소프트 params(C# 참조)
https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/params
# 인자를 여러개 보내고 싶다
public int Sum(int a, int b)
{
return a + b;
}
public int Sum(int a, int b, int c)
{
return a + b + c;
}
......
인자가 정해져 있지 않은경우 여러개의 숫자를 합치는 함수를 위와 같이 구현해 볼 수 있을 것이다.
좋지않다. 결국에는 같은 내용인데 반복적으로 만들 뿐이다.
여기서 필요한게 params 이다.
# 인수의 갯수가 정해지지 않은 경우의 초기화
매개변수의 형식 앞에 params를 붙여주면 가변 개수의 매개변수를 보낼 수 있다.
public void Test(params int[] numbers){}
public void Start()
{
Test(0);
Test(0, 1, 2, 3);
Test(new int[] { 1, 3, 2, 2 });
}
만약 params 뒤에 object[] 를 보내게 된다면, 데이터형까지도 자유로워진다!
사실 우리는 이미 params를 자주 접하고 있다.
string.Format("{0:N0} - {1:N0}", a, b);
string.Format에서 사용되는 뒤쪽 인자가 params로 선언되어있다.
맨 앞은 string이기 때문에 몇 개의 인자를 받을지 알 수 없기 때문.
제한사항
- params는 반드시 마지막 매개변수여야 한다.
- params는 메서드에 반드시 한 개만 존재한다.
- params 매개 변수의 형식은 1차원 배열이여야 한다.
'🌍 C# Study > C# 케이스 스터디' 카테고리의 다른 글
C# 인덱서 Indexer (0) | 2020.07.13 |
---|---|
C# Collection Foreach 에서 원소 삭제하기 (0) | 2019.12.15 |
Construct (생성자) 오버로딩 (0) | 2019.12.12 |
ReadOnlyCollection (0) | 2019.12.12 |
for 문에서 AddListener 람다식은 주의해야한다. (AddListener for loop) 클로저 Closure problem (5) | 2019.12.12 |