Re: [問題] 不定參數使用
※ 引述《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
討論串 (同標題文章)