C 中如何把函式當做引數傳遞到別的函式中

2022-06-24 14:00:13 字數 1230 閱讀 2854

【問題】

c#想要傳遞函式引數,但是引數型別是函式,不知道如何傳遞。

【解決過程】

1.找了半天,看到這裡:把函式名作為引數傳遞–c#委託的宣告和使用,說到用delegate,但是感覺有點複雜,而且不太像是能方便的解決此處的問題。

2.說實話,找了其他一些類似的帖子,還是沒太看懂。

3. 不過最後還是自己在他們的描述的基礎上,自己折騰出來了。

【總結】

將函式當做引數,傳遞到別的函式中,的確是通過**實現的。

總體思路是:

1.先建乙個delegate的函式,delegatefunc該函式的引數格式,要和你想要傳遞的那個函式functodelegate一致。即,引數個數,引數變數型別,順序等都一樣。

2.然後別的某個函式,比如becalledfunction中,其引數,就可以支援帶delegate型別的函式作為引數了。

3.然後你在另外的其他的地方,某個函式anotherfunc中,就可以呼叫該becalledfunction函式,把原先的functodelegate當做引數一樣,傳遞過去了。

通過例子,就很容易說明具體是如何操作的了:

原先**如下:

void functodelegate(object sender, keypressedeventargs e)

private void anotherfunc(object sender, eventargs e)

加了**,使得可以將函式作為引數傳遞,變成了這樣:

void functodelegate(object sender, keypressedeventargs e)

delegate void delegatefunc(object sender, keypressedeventargs e); //(1) here para must same with the above function 'functodelegate', which is what you want to delegate, 's para

public void becalledfunction(modifierkeys_e paraa, keys parab, delegatefunc func) // (2) here para use that above delegate func as para

private void anotherfunc(object sender, eventargs e)

如何把方法 函式 當引數傳遞

方法的引數一般是變數,但在某些情況下需要這個引數是另乙個方法,這時就可以參考下面這段 了。這個例子也很好的說明了委託在實際工作中的應用,片段 於 c 高階程式設計第6版 隨書的示例 示例 1using system 23 namespace wrox.procsharp.delegates411 1...

如何把函式當成乙個引數傳遞(C )

以最簡單的氣泡排序為例,講述如何把函式當成乙個引數傳遞 方法一 傳遞函式指標 include include using namespace std void bubblesort int beg,int end,bool cmp int x,int y if flag return bool co...

c 中如何給函式傳遞陣列引數

在c 中,如果要給乙個函式傳入乙個陣列,一般都是傳入兩個引數乙個陣列指標和乙個陣列大小 例 void print 1 int n,int datas std cout std endl 對這個函式,我們可以這樣使用它 const int n 3 int datas n print 1 n,datas...