引數陣列,通過關鍵字params定義引數陣列,paras型別引數主要用於在對陣列長度未知(可變)的情況下進行函式宣告,呼叫時可以傳入個數不同的實參,具備很好的靈活性。
首先給出乙個具體的例子介紹引數陣列(params)的具體用法,首先定義乙個帶有引數陣列的方法:
程式的輸出結果如下:using system;
public class myclass
console.writeline();
} public static void useparams2(params object list)
console.writeline();
} static void main() ;
useparams(myarray);
} }
1 2
3 1
a test
10 11
12 下面總結一些使用引數陣列的注意事項:
1. 只能在一維陣列上使用params關鍵字。
2. 不能過載乙個只基於params關鍵字的方法。params關鍵字不構成方法的簽名的一部分。
如:
3. 不允許ref或out params陣列//編譯時錯誤:重複訪問
public static int min(int paramlist)
.............
public static int min(params int paramlist)
.............
4. params 陣列必須是方法的最後乙個引數(也就是只能有乙個params陣列引數)//編譯時錯誤
public static int min(ref params int paramlist)
.............
public static int min(out params int paramlist)
.............
5. 編譯器會檢查並拒絕任何可能有歧義的過載public static int min(params int paramlist,int i)
.............
6. 非params方法總是優先於乙個params方法。也就是說,如果願意,仍然可以為普通情況建立乙個方法的過載版本,
如:
優於:public static int min(int lefthandside,int righthandside)
.............
第乙個先被呼叫(宣告不帶params陣列引數的方法,或許是一種有用的優化技術,可以避免編譯器建立和填充太多的陣列)public static int min(params int paramlist)
.............
system.object(object)是所有類的根,使用params object陣列來宣告乙個方法,它能接受任意數量的object引數;換言之,不僅引數的數量是任意的,引數的型別也可以是任意的。所以,此方法稱為black.hole(黑洞)class black
1. 可以不向它傳遞任何引數
2. 可以在呼叫它時,傳遞null作為引數
3. 可以向它傳遞乙個實際的陣列。也就是說,可以人工建立本由編譯器來建立的陣列
4. 可以向它傳遞不同型別的其他任何引數,這些引數將自動封裝到乙個object陣列
c 引數陣列
有時,當宣告乙個方法時,不能確定要傳遞給函式作為引數的引數數目,c 引數陣列解決了這個問題,引數陣列通常用於傳遞未知數量的引數給函式 params關鍵字 在使用陣列作為形參時,c 提供了params關鍵字,使呼叫陣列為形參的方法時,既可以傳遞陣列實參,也可以只傳遞一組陣列,params使用格式為 p...
C 引數陣列與陣列引數
1 陣列作為引數來傳遞時,當呼叫這個函式時裡面的引數需要new乙個陣列 2 引數陣列就是在函式的陣列引數前面加上params,當呼叫函式傳遞陣列時不需要再new乙個,只需要傳遞任意個跟陣列引數型別相同的數就可以 using system namespace 1 引數陣列 return sum sta...
C 使用引數陣列
過載,是指在相同的作用域內,宣告多個同名的方法。用以對不同型別或數量的引數的引數執行相同的操作。比如,可以求兩個或者三個 int型別數中的最大值,我們可以編寫這樣的方法實現 class util public static int max int num1,int num2,int num3 顯然,...