先看這樣一個方法
public voidPrintTest(string word)
{
Console.WriteLine("{0}",word);
Console.ReadKey();
}
此時該方法,只能打印出 word 包含的字符,如果要對打印出的word包含的字符走出調整,那就在使用調用該方法之前去修改word變量。那有什麼好辦法讓我們如何在調用方法時,隨意控制參數的數量呢。看params是怎麼實現這一點的。
看經過優化後的 PrintTest方法:
public void PrintTest(params string[]words)
{
String word="start"+strPersonal;
if (words != null)
{
for (int i = 0; i <words.Count(); i++)
{
word = word + ","+ words[i];
}
}
Console.WriteLine("{0}",word);
Console.ReadKey();
}
在調用方法的時候,如是寫:
MyTest.PrintTest("哼"); ——輸出:哼
MyTest.PrintTest("哼","哈");——輸出:哼,哈
MyTest.PrintTest("哼","哈", "哼哈");——輸出:哼,哈,哼哈
還可以這麼寫:
string[]words = new string[] { "哼", "哈", "哼哈" };
MyTest.PrintTest(words); ——輸出:哼,哈,哼哈
一般來說,參數個數都是固定的,.NET提供了更靈活的機制來實現可變數目參數,這就是使用params修飾符。可變數目參數的好處就是在某些情況下可以方便地對參數個數不確定情況的實現,例如計算任意數字的加權和,鏈接任意字符串爲一個字符串等。
當使用params的時候,還要注意一些地方,
1、params修飾的參數必須爲一維數組。
2、params修飾的參數數組,可以爲任何類型,只要設置數組類型爲object就可以。
3、params必須在參數列表的最後一個,並且只能使用一次。