C 委託與不定長引數

2021-10-08 01:48:44 字數 1048 閱讀 1515

當不確定乙個函式的具體定義形式時,我們可以定義乙個委託型別,以後將其他定義好的函式 賦值給 委託例項。

委託是抽象的,而賦值給委託的函式是具體的。

例如,對若干個數是做加和運算還是連乘運算不確定時,可以定義乙個委託,等以後要用時再分配具體的加和/連乘運算。

在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函式的使用 形參可以接收其他的關鍵字引數,它會將這些引數統...