第一次使用params這個關鍵字,發覺這是蠻好用的一種參數形式。
1、params
params關鍵字用在指定參數可變的場合中。在方法聲明中加了params關鍵字後不能再同時定義其他參數,在聲明方法中只允許params這個關鍵字的存在。
範例程式碼:
class Test{public void TestIntParams(params int[] vals){if(vals != null && vals.Length > 0){for(int i=0; i<vals.Length; ++i){// Do something}}}static void Main(){int a=1, b=2, c=3;int[] array = new int[] { 4, 5, 6 };// Invoke methods using three waysTestIntParams(a, b);TestIntParams(a, b, c);TestIntParams(array);}}
2、ref
ref 關鍵字使參數按引用傳參,啟動並執行結果就是在被調用的方法中對該變數的修改效果將會持續到返回調用方法之後。
(1)若要使用 ref 參數,則方法定義和調用方法都必須顯式使用 ref 關鍵字。
(2)傳遞到 ref 參數的參數必須最先初始化。這與 out 不同,out 的參數在傳遞之前不需要顯式初始化。
(3)屬性不是變數,因此不能作為 ref 參數傳遞。
(4)儘管 ref 和 out 在運行時的處理方式不同,但它們在編譯時間的處理方式是相同的。因此,如果一個方法採用 ref 參數,而另一個方法採用 out 參數,則無法重載這兩個方法。
(5)如果一個方法採用 ref 或 out 參數,而另一個方法不採用這兩類參數,則可以進行重載。
3、out
out關鍵字與ref相似,採用按引用傳參。
(1)ref 要求變數必須在傳遞之前進行初始化。
(2)儘管作為 out 參數傳遞的變數不需要在傳遞之前進行初始化,但需要調用方法以便在方法返回之前賦值(同時在被呼叫者法體中,必須在使用該參數之前賦初始值)。