聲明一個可變數量的參數:
代碼如下:
Static int Add(params int[] values)
{
int sum = 0;
if(value != null)
{
for(int x = 0;x<values.Length;x++)
sum += values[x];
}
return sum;
}
上面這個方法除去params,是一個普通的方法,接受int數組,返回組中的所以項之和。
我們可以這樣調用:Add(new int[]{1,2,3});
但是閱讀性不是很高,我們希望能更簡潔:
Add(1,2,3);
這時,由於params關鍵字,是可以編譯通過和運行的。
params只能應用於方法參數中的最後一個。
在c#編譯器發現Add(1,2,3)時,會先尋找是否有Add(int i,int j,int k)匹配的方法,
如果有就調用,沒有,就尋找是否有定義為Add(params int[] values)的方法,
如果有就把1、2、3先保存到一個數組裡,然後調用Add(int[] values)方法。
這裡也說明CLR對params關鍵字是一無所知的,params只是提供給c#編譯器使用的。