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자리까지해서 반올림)
'프로그래밍&IT > C#' 카테고리의 다른 글
Thread 관련 간단 정리2. 멀티스레드 관련 - ThreadPool (0) | 2015.12.13 |
---|---|
Thread 관련 간단 정리1. Thread / ThreadStart / ParameterizedThreadStart (0) | 2015.12.13 |
[C#] Cross Threading 처리 : InvokeRequired 속성 (0) | 2015.05.30 |
System.Threading 네임 스페이스 및 Thread클래스 관련 (0) | 2015.04.11 |
C# System.Collections 인터페이스 & 클래스들 (0) | 2015.04.06 |