ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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();
        }
    }
    반응형
Designed by Tistory.