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는 대안적 선택일수밖에 없습니다.
다음 시간에...
- 이전글16. C#의 박싱과 언박싱. (Boxing, Unboxing and Heap, Stack) 20.08.19
- 다음글15-6. 메서드의 매개 변수 한정자 out 키워드 20.08.19
댓글목록
등록된 댓글이 없습니다.