在c 中實現類似c c 函式指標的功能

2021-04-16 09:30:11 字數 696 閱讀 1003

在c/c++中我們可以用函式指標。那在c#是不是也可以實現類似的功能呢?

答案是肯定的。我們可以在c#中用委託(delegate)來解決這個問題。

先看一段c/c++的函式指標**:

#include

int max(int x,int y)

int min(

int x,

int y )

void main()

再看一段c#的****:

using system;

///

/// summary description for class1.

///

class class1

static int min(

int x,

int y)

delegate int call(

int x,

int y);

static void eventhandler(call fp,call fq, int x, int y)

/n", fp(x, y), fq(x, y));

}///

///

[stathread]

static void main(

string args)

}用c# delegate實現類似c/c++的函式指標,能有效簡化**並能提高函式的通用性。

C C 中函式指標的含義

函式存放在記憶體的 區域內,它們同樣有位址,我們如何能獲得函式的位址呢?如果我們有乙個int test int a 的函式,那麼,它的位址就是函式的名字,這一點如同陣列一樣,陣列的名字就是陣列的起始位址。定義乙個指向函式的指標用如下的形式,以上面的test 為例 int fp int a 這裡就定義...

C C 中函式指標的含義

函式存放在記憶體的 區域內,它們同樣有位址,我們如何能獲得函式的位址呢?如果我們有乙個int test int a 的函式,那麼,它的位址就是函式的名字,這一點如同陣列一樣,陣列的名字就是陣列的起始位址。定義乙個指向函式的指標用如下的形式,以上面的test 為例 int fp int a 這裡就定義...

C C 中函式指標的含義

函式存放在記憶體的 區域內,它們同樣有位址,我們如何能獲得函式的位址呢?如果我們有乙個int test int a 的函式,那麼,它的位址就是函式的名字,這一點如同陣列一樣,陣列的名字就是陣列的起始位址。定義乙個指向函式的指標用如下的形式,以上面的test 為例 int fp int a 這裡就定義...