Re: [問題] 不定參數使用

看板C_Sharp作者 (小殘)時間16年前 (2010/04/04 17:01), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《fcouple (八杜妖妖嘛笑笑)》之銘言: : 最近學到不定參數的方法,發現了一些事,請看程式碼: : using System; : class Program : { : public static int addi(params int[] value) : { : int sum = 0; : foreach( int i in value ) : sum += i; : return sum; : } : public static void Main(string[] args) : { : int[] myArry = {1,2,3,4,5,6,7,8,9,10}; : Console.WriteLine("不定參數呼叫?"+addi(myArry)); //可以這樣用嗎? : Console.WriteLine("不定參數呼叫:"+addi(1,2,3,4,5,6,7,8,9,10)); : } : } : 在 Main 裡面,照理說我們這樣呼叫 addi(1,2,3),參數隨便給幾個都行,但是我隨意的 : 給了一個陣列 addi(myArry),結果,它也跑出一樣的答案了。 : 我要問的是,不定參數不就是要給它一堆參數,而我在參數裡傳陣列進去,它竟然接受, : 這是正常的嗎? : 既然陣列可以,我試了一下:addi(1,2,3,myArry) 這樣傳又會出錯。 : 到底怎麼回事? int addi(params int[] value) 可以看成接受 1. int addi(int a, int b, int c.....) 2. int addi(int[] value) 所以 addi(1,2,3) => addi(int, int, int)符合1 addi(myArry) => addi(int[]) 符合2 而你的 addi(1,2,3,myArry) => addi(int, int, int, int[]) 兩者皆不符合,故出錯 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.74.77

04/10 21:26, , 1F
謝謝你,懂了
04/10 21:26, 1F
文章代碼(AID): #1Bk5Lmq6 (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1Bk5Lmq6 (C_Sharp)