如果今天要實現下面的主程式,
static void Main(string[] args)
{
int a = 3;
int b = 4;
int c = 5;
int sum = 0;
sum = Add(a, b);
Console.WriteLine("總和 = " + sum);
sum = Add(a, b, c);
Console.WriteLine("總和 = " + sum);
}
其中 Add(a,b) Add(a,b,c)
怎麼是同一個方法,但是傳入的數值數量卻不同?
腦筋稍微快一點的人,可能會想到這個方法
public static int Add(int a, int b)
{
int sum = 0;
sum = a + b;
return sum;
}
public static int Add(int a, int b, int c)
{
int sum = 0;
sum = a + b + c;
return sum;
}
利用多載,就可以解決了 ~
但是如果,今天要加四個呢?
ex. Add(a,b,c,d)
又要多寫一遍嗎 !? 天啊~那要寫到甚麼時候...
所以遇到這種狀況呢,就要利用一種東西
那就是...
陣列函數(params Array)
public static int Add(params int[] paramList)
{
int sum = 0;
foreach (int i in paramList)
{
sum += i;
}
return sum;
}
也就是說呢,你後面不管要加多少個數字
Add(a,b,c,d,e,f,g,h,i,j)
他都會照單全收,通通加好之後,回傳總和值
這真的是一個非常好的解決方法
附上MSDN的說法
沒有留言:
張貼留言