2010/04/22

如何輸入多個參數?

如果今天要實現下面的主程式,

        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的說法

沒有留言:

張貼留言