Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# params 키워드란? 가변 길이 매개변수의 개념과 사용법

C#에서 params 키워드를 사용하는 이유

메서드를 선언할 때 전달될 인자의 개수가 정해져 있지 않다면 어떻게 해야 할까요? 이럴 때 C#의 params 키워드가 유용하게 사용됩니다. params 키워드를 사용하면 호출자가 임의의 개수만큼 인자를 넘겨도 하나의 메서드로 처리할 수 있습니다.

즉, 같은 기능을 하는 메서드를 인자 개수별로 여러 번 오버로딩할 필요 없이, 단 하나의 메서드로 다양한 상황에 대응할 수 있어 코드가 간결해지고 유지보수성이 크게 향상됩니다.

params 키워드의 주요 특징

  • params로 선언된 매개변수는 1차원 배열 형태여야 합니다.
  • 메서드 선언에서 params 매개변수는 반드시 매개변수 목록의 마지막에 위치해야 합니다.
  • 하나의 메서드에는 params 매개변수를 하나만 선언할 수 있습니다.
  • 호출 시 인자를 아예 전달하지 않거나, 콤마로 구분된 값들을 전달할 수도 있습니다.

구현 예제

다음은 params 키워드를 활용하여 전달된 모든 정수의 합계를 구하는 완전한 예제입니다.

using System;

namespace Program {
    class ParamArray {
        public int AddElements(params int[] arr) {
            int sum = 0;

            foreach (int i in arr) {
                sum += i;
            }
            return sum;
        }
    }

    class Demo {
        static void Main(string[] args) {
            ParamArray app = new ParamArray();
            int sum = app.AddElements(300, 250, 350, 600, 120);
            Console.WriteLine("합계는: {0}", sum);
            Console.ReadKey();
        }
    }
}

실행 결과

합계는: 1620

코드 설명

AddElements(params int[] arr) 메서드는 params 키워드 덕분에 정수형 인자를 몇 개든 받아들일 수 있습니다. 위 예제에서는 5개의 정수(300, 250, 350, 600, 120)를 전달했으며, 메서드 내부에서는 foreach 루프를 통해 배열의 각 요소를 순회하며 합계를 계산합니다. 최종 결과인 1620이 콘솔에 출력됩니다.

이처럼 params 키워드를 사용하면 인자의 개수에 유연하게 대처할 수 있어, 유틸리티 함수나 집계 함수 등 다양한 상황에서 활용도가 높습니다.