11.3 比較引數陣列和可選引數
過載雖然很好用,但有時還是會不那麼方便,當引數數量變化時過載就很難解決了。c#提供一種技術允許只寫乙個方法就能接受數量可變的引數:引數陣列(關鍵字params
宣告的引數)。
class
util
int currentmin=paramlist[0]
;foreach
(int i in paramlist)
}return currentmin;
}}
上述**實現了求多個int 變數的最小值,但需要求幾個數的最小值時需要建立額外的陣列,當然也可以使用匿名陣列:int min=util.min(new int);
。
class
util
}
這樣的話呼叫方法時可以傳遞任意數量的引數實參。
int min =util.min(first,second);
編譯器自動將上述呼叫轉換成如下**:
int
array=
newint[2
];array[0]
=first;
array[1]
=second;
int min=util.
min(array)
;
引數陣列需要注意幾點:
如果引數型別和數量都不固定,就需要object
了,編譯器通過裝箱將值型別轉換成物件。如:
class
black
}
我們將這樣的方法稱為black.hole
(黑洞)。
如我們實際使用時:
util.cs
using system;
using system.collections.generic;
using system.text;
namespace c_11_2_3
if(paramlist.length ==0)
int sumtotal =0;
foreach
(int i in paramlist)
return sumtotal;}}
}
program.cs
using microsoft.visualbasic.compilerservices;
using system;
namespace c_11_2_3
static
void
main
(string
args)
catch
(exception ex)}}
}
引數陣列和可選引數有著根本的不同。 第十一章 理解引數陣列
假定要寫方法判斷作為引數傳遞的一組值中的最小值。乙個辦法是使用陣列。例如 為了查詢幾個int值中最小的。可以寫名為min的靜態方法,向其傳遞乙個int陣列,如下 class util public static int min int paramlist if paramlist null para...
C 引數陣列
引數陣列,通過關鍵字params定義引數陣列,paras型別引數主要用於在對陣列長度未知 可變 的情況下進行函式宣告,呼叫時可以傳入個數不同的實參,具備很好的靈活性。首先給出乙個具體的例子介紹引數陣列 params 的具體用法,首先定義乙個帶有引數陣列的方法 using system public ...
c 引數陣列
有時,當宣告乙個方法時,不能確定要傳遞給函式作為引數的引數數目,c 引數陣列解決了這個問題,引數陣列通常用於傳遞未知數量的引數給函式 params關鍵字 在使用陣列作為形參時,c 提供了params關鍵字,使呼叫陣列為形參的方法時,既可以傳遞陣列實參,也可以只傳遞一組陣列,params使用格式為 p...