當不確定乙個函式的具體定義形式時,我們可以定義乙個委託型別,以後將其他定義好的函式 賦值給 委託例項。
委託是抽象的,而賦值給委託的函式是具體的。
例如,對若干個數是做加和運算還是連乘運算不確定時,可以定義乙個委託,等以後要用時再分配具體的加和/連乘運算。
在namespace下:
public
delegate
intoperate
(params
int[
] array)
;// 定義委託
class
program
return ret;
}public
static
intproductint
(params
int[
] array)
return ret;
}static
void
main
(string
args)
{operate o;
// 宣告委託例項
o = sumint;
console.
writeline
("the result of array is:"+o
(2,5
,3,6
,7))
;
o = productint;
console.
writeline
("the result of array is:"+o
(2,5
,3,6
,7))
;
在c++中有一種排序方式(標頭檔案下的sort()函式):
sort
(v.begin()
, v.
end(
), cmp)
;
cmp是用於比較元素的函式指標,其cmp在這裡是抽象的,需要我們提供乙個cmp的具體實現。
在c#中,我們可以使用委託實現類似的功能。
不定長引數
不定長引數 在定義函式時,不確定接收引數的個數,此時可以使用不定長引數 不定長引數的表現形式 1.args 表示在呼叫函式時,專門來負責接收不確定個數的位置引數的。2.kwargs 表示在呼叫函式時,專門來負責接收不確定個數的關鍵字引數的。當呼叫函式時,會把所有的關鍵字引數打包到乙個字典裡面,然後把...
不定長引數方法
package com public class unfixedparameter testone new string testtwo testtwo a b c public static void testone string args public static void testtwo s...
Python不定長引數
記錄了python函式的不定長引數,用 來接收不定長的資料。在定義函式時,可以在形參前邊加上乙個 這樣這個形參將會獲取到所有的實參,它將會將所有的實參儲存到乙個元組中 a會接受所有的位置實參,並且會將這些實參統一儲存到乙個元組中 裝包 fn3函式的使用 形參可以接收其他的關鍵字引數,它會將這些引數統...