在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 這裡就定義...