본문 바로가기

프로그래밍&IT/C#

Params 한정자, 매개변수 배열

Param; 함수에 가변적인 매개변수 전달시 배열로 전달

배열은 이미 아신다는 전제하에...


- 동일한 타입을 갖는 여러개의 매개변수를

한개의 매개변수 (즉 배열)로 전달하는 역할입니다.


double값의 가변적 매개변수를 받아서 평균을 구하는 함수를 구현해보겠습니다.


namespace ConEx01

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("Avg is {0}", CalcAvg(1.0, 2.0, 3.6, 4.0));

            Console.WriteLine("Avg is {0}", Math.Round(CalcAvg(3.0, 4.0, 5.5), 3));

// 소수점 3자리까지만 결과를 보여주기위해서 Math.Round 함수를 사용

        }


        static public double CalcAvg(params double[] values)

        {

            Console.WriteLine("{0}개의 인자를 주었습니다.", values.Length);

// 받은 매개변수의 개수 확인


            double sum = 0;

            if (values.Length == 0) return sum;


            for (int i = 0; i < values.Length; i++)

                sum += values[i];


            return (sum / values.Length);

        }

    }

}


아래와 같이 결과가 나옵니다.

1 + 2 + 3.6 + 4 = 2.65

3 + 4 + 5.5 = 4.166666666666667 (여기서 소수점 3자리까지해서 반올림)