NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    C# 15-7. 메서드 매개 변수인 params

    페이지 정보

    본문

    안녕하세요. 소심비형입니다. 메서드의 마지막 강좌입니다. 앞서 얘기했듯이 알아볼 내용은 많지만, 가장 기본적인 내용은 params를 마지막으로 마치며 나머지 내용들은 좀 더 심도있게 알아볼 수 있는 시간을 갖도록 하겠습니다.

     

    params키워드를 사용하면 여러개의 인수를 사용하는 메서드 매개 변수를 지정할 수 있습니다. 매개 변수 선언에 지정된 형식의 쉼표로 구분된 인수 목록 또는 지정된 형식의 인수 배열을 보낼 수 있습니다. 인수 없이 보낼수도 있는데 이때는 params 목록의 길이는 0이 됩니다. 메서드 선언에서 parmas 키워드 다음에는 매개 변수를 추가할 수 없으며 params 키워드 하나만 메서드 선언에 사용할 수 있습니다.

     

    다음 예제에서는 parmas 매개 변수에 인수를 보낼 수 있는 다양한 방법을 보여줍니다.

    using System;
    namespace UsingParams
    {
        class MainApp
        {
            static int Sum(params int[] args)
            {
                Console.Write("Summing... ");
                int sum = 0;
     
                for (int i = 0; i < args.Length; i++)
                {
                    if (i > 0)
                        Console.Write(", ");
     
                    Console.Write(args[i]);
                    sum += args[i];
                }
     
                Console.WriteLine();
                return sum;
            }
     
            static void Main(string[] args)
            {
                int sum = Sum(3, 4, 5, 6, 7, 8, 9, 10);
                Console.WriteLine("Sum : {0}", sum);
                int[] myIntArray = { 5, 6, 7, 8, 9 };
                sum = Sum(myIntArray);
                Console.WriteLine("Sum : {0}", sum);
            }
        }
    }
    

     

     

    이 키워드는 잘 사용되지 않는데요. 코드를 보면 아시겠지만, params를 사용함으로써 얻는 장점보다 단점이 더 크기 때문입니다. 물론, 같은 형식의 인자들을 나열하는 것보다는 간편할 수 있지만, 메서드를 정의할 때 인자의 이름도 의미를 가지기 때문에 가독성면에서 그리 좋은 선택은 아닙니다. 명명된 인수를 사용할 때 얻는 이점과 .NET에서 제공하는 Documentation기능(/// 로 표현되는 주석문)등등... 장점을 사용하지 못한다는 것은 손실이 큽니다. 위의 코드에서 알 수 있듯이 배열을 초기화 한 후 전달해도 결과는 같기 때문에 parmas는 대안적 선택일수밖에 없습니다.

    loWep3U.png

     

     

    다음 시간에...

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.