params 可變參數
- 將實參列表中,跟可變參數陣列類型一致的元素,都當作陣列的元素去處理。
- params 可變參數,必須是形參列表的最後一個參數
- 它是唯一性,所以在參數列表只能有一個。
params它起了一個作用,能把元素當作陣列去處理。
比如說有一個方法
有個一數組,儲存學生的分數
計算總成績
1
2
3
4
5
6
7
8
9
10
int[] score = { 77, 88, 99 };
Test("Rii", score);
static void Test(string name, int[] score) {
int sum=0;
for (int i = 0; i < score.Length; i++) {
sum += score[i];
}
Console.WriteLine("{0}{1}總成績{0}", name,id, sum);
}
能不能不要聲明一個陣列,直接給數組進去呢?
能,在參數前面加上 params
1
2
3
4
5
6
Test("Rii",77, 88, 99); //不用宣告陣列,直接把數字放進去
//params可變參數
static void Test(string name, params int[] score) { //在參數前面加上 `params`
...
}
params它起了一個作用,能把元素當作陣列去處理。
params int[]可以稱它為「可變參數陣列」,長度可長可短。
當看到praams 參數時,有兩個選擇
- 填相同類型一致的元素帶進去
- 填跟寫一樣的數組進去
1
2
3
4
5
6
7
8
9
10
11
12
13
//當看到praams 參數時,有兩個選擇:
//第一種:填相同int類型一致的元素帶進去
Test("Rii",77, 88, 99); //不用宣告陣列,直接把數字放進去
//第二種:填跟寫一樣的陣列進去
int[] score = { 77, 88, 99 }; //宣告陣列
Test("Rii", score);
//params可變參數
static void Test(string name, params int[] score) { //在參數前面加上 `params`
...
}
params參數數組,必須是形參列表中的最後一個參數。
為什麼要最後一個,因為它區分不出來,所以要放最後一個
形參是定義方法的參數
例如:我們再放一個id進去,如果id放在最後面,params它會區分不出來有多少個是它的元素
1
2
3
4
5
6
7
8
9
10
Test("Rii", 1001, 77, 88, 99); //這邊的參數叫 實參列表。也叫引數
Console.ReadKey();
static void Test(string name, int id, params int[] score) { //這邊的參數叫 形參列表
int sum = 0;
for (int i = 0; i < score.Length; i++) {
sum += score[i];
}
Console.WriteLine("{0}{1}總成績{0}", name,id, sum);
}
練習:求任意長度陣列的總和(整數類型)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//調用param參數方法有兩種選擇:
//第一種:宣告陣列,再放入
int[] nums = {1, 2, 4, 5, 6, 7};
int sum1 = Sum(nums)
//第二種:直接放入元素
int sum2 = Sum(1, 2, 4, 5, 6, 7);
//param參數方法
static int Sum(params int[] nums)
{
int sum = 0;
for (int i = 0; i < nums.Length; i++) {
sum += nums[i];
}
return sum;
}