1. 引數陣列。c#的特色,允許函式引數的最後指定乙個引數陣列,可以使用個數不定的引數呼叫,用params關鍵字定義
staticdouble sumvals(params
double
vals)
return
sum;}//
呼叫sumvals(1,2,3);
2. 值引數和引用引數。引用引數使用關鍵字ref指定。函式定義和函式呼叫時都要使用ref
staticvoid showdouble(ref
intval)
", val);
}//呼叫,src必須非const,src必須初始化賦值。
int src = 1;
showdouble(ref src);
3. 輸出引數。使用方式和引用引數類似,使用out關鍵字,不同於ref, out引數可以是未賦值的變數,並且建議是,有值反而會被修改而沒意義。
staticdouble maxval(double vals, out
intmaxindex)
}return
maxval;}//
使用double dvals=;
intdindex;
console.writeline(",
", maxval(dvals, out dindex),dindex);
4. 函式的過載。函式的簽名包括函式的名稱及其引數,包括引數的型別和關鍵字(out/ref),不包括函式的返回型別。
5. 委託。一種把引用儲存為函式的型別。委託的生命類似於函式,不帶函式體,使用關鍵字delegate。委託的宣告指定了乙個返回型別和引數列表,委託大多用於事件處理。
delegatedouble processdelegate(double v1, double
v2);
static
double multiply(double v1, double
v2)static
double divide(double v1, double
v2)//
使用processdelegate process;
process = new
processdelegate(divide);//第一種用法
process = multiply;//第二種用法
process(
1, 2);
C 拾遺 函式過載
c 拾遺 函式過載 關於作用域,需要指出幾點事實 用大括號 括起來的區域處於同一作用域,常見的有函式體 for if語句等。同一作用域內不可出現同名的變數,若是函式同名,那就是函式過載問題。不同作用域內同名與否,沒影響。所有的函式之外的區域就是全域性作用域。首先需要指出,同一作用域中的函式才會出現過...
函式呼叫拾遺
通常構成函式主題的js 在定義之時是不會被執行的,只有在呼叫函式是才會被執行 有4種方式可以呼叫js函式 定義函式 factorial function factorial var probability factorial 5 以函式形式呼叫的函式通常不適用this關鍵字 方法呼叫和函式呼叫區別在...
C語言拾遺
main函式引數 c語言規定main函式引數只能有兩個,習慣上這兩個引數寫成argc和argv。c語言還規定argc必須是整形變數,argv必須是指向字串的指標陣列。因此,main函式的函式頭應該寫為 main argc,argv int argc char argv 或者 main int arg...