C 引數陣列

2021-07-10 05:31:28 字數 1836 閱讀 6807

引數陣列,通過關鍵字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關鍵字不構成方法的簽名的一部分。 

如:

//編譯時錯誤:重複訪問 

public static int min(int paramlist)

.............

public static int min(params int paramlist)

.............

3. 不允許ref或out params陣列

//編譯時錯誤 

public static int min(ref params int paramlist)

.............

public static int min(out params int paramlist)

.............

4. params 陣列必須是方法的最後乙個引數(也就是只能有乙個params陣列引數)

public static int min(params int  paramlist,int i) 

.............

5. 編譯器會檢查並拒絕任何可能有歧義的過載 

6. 非params方法總是優先於乙個params方法。也就是說,如果願意,仍然可以為普通情況建立乙個方法的過載版本, 

如:

public static int min(int lefthandside,int righthandside) 

.............

優於:

public static int min(params int  paramlist) 

.............

第乙個先被呼叫(宣告不帶params陣列引數的方法,或許是一種有用的優化技術,可以避免編譯器建立和填充太多的陣列)

class black 

system.object(object)是所有類的根,使用params object陣列來宣告乙個方法,它能接受任意數量的object引數;換言之,不僅引數的數量是任意的,引數的型別也可以是任意的。所以,此方法稱為black.hole(黑洞) 

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 顯然,...