-
params(가변 인자 매개변수)TIL 2023. 10. 27. 17:56반응형
params란?
1)우리가 함수의 파라미터를 넘길때 1, 2, 3개 이런식으로 개수를 지정해주었던 것과 다르게
params 키워드를 사용하면 개수의 제한 없이 매개변수를 넘길 수 있게된다.
=> 가변 인자 매개변수 = 개수가 변하는 인자들을 넘길 수 있는 매개변수
params의 규칙
1)선언부에서 params의 키워드는 타입 맨 앞에 와야한다. (예시 : params int[] myParams)
2)가변 인자 매개변수를 선언할때는 [] 를 이용해서 1차원 배열로 선언해야한다.
3)데이터 타입이 애매한 경우 모든 클래스의 최상위 클래스인 object 클래스를 배열로 해도 된다.
4)호출부에서 각 매개변수는 쉼표로 구분해야 한다.
5)호출부에서 매개변수를 보내지 않아도 된다. 이 경우 길이가 0이 되며, 빈 매개변수가 된다.
명확한 예시
선언 - public static void Add(params int[] mylist)
호출 - Add(1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 9, 7, 6, 5, 4, 4, 3, 2, 2, 1, 2, 2, 1, 2, 3, 4, 5, 6, 7)
//C# params example. BlockDMask. class _20190321_params1 { public static void Add(params int[] myList) { int sum = 0; //foreach example foreach (int elem in myList) { Console.Write(elem.ToString() + " "); sum += elem; } /* for loop example. for(int i=0; i<myList.Length; ++i) { Console.Write(myList[i].ToString() + " "); sum += myList[i]; } */ Console.WriteLine(); Console.WriteLine("params Length : " + myList.Length.ToString()); Console.WriteLine("params sum : " + sum.ToString()); Console.WriteLine(); } static void Main(string[] args) { Console.WriteLine("[1] 매개변수 여러개"); Add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); Console.WriteLine("[2] 매개변수 없음"); Add(); } }
반응형'TIL' 카테고리의 다른 글
오늘의 팁 (0) 2023.11.09 최종 프로젝트 - BT에 들어갈 노드들 정리(+개념) (1) 2023.10.31 강의 - 디자인 패턴 - 빌더(빌드) 패턴 (0) 2023.10.27 유니티 - 비헤이비어 트리 : BT(Behavior Tree) 개념잡기 와 예시 (0) 2023.10.27 RPC(원격 프로시저 호출 / Remote Procedure Calls) 란 무엇인가? (1) 2023.10.25