作者godman362 (Shizuru)
看板NUU_CSIE
标题[心得] delegate & Event (1)
时间Sat May 9 11:16:48 2009
花了半天~一天的时间
把C#的delegate和Event稍微看懂了一些
以下,开始分享:
首先,来讲
delegate
简单来说,他就是
Function Pointer
学弟妹看不懂没关系,函数指标算是进阶的程式设计
没有学过也是很正常的,不过这边我就不提了
除非有人需要,我会在另外贴一篇讲解
那
delegate既然是
Function Pointer
有个Pointer,想必就是指到某个东西
而前面的英文修饰词是「Function」,所以就是
指向函数的指标
那好,要给delegate的函数,则型态必须同於delegate所宣告的样板
Eg.
public delegate void FuncPtr(
void );
在这边,我用回传值为void,且没有参数的delegate
也就是这个delegate只能放如下类型的函数:
void FuncName( void );
那再来一个例子
Eg.
public delegate int FuncPtr(
int ,
float );
像上面这个,他的delegate只能放如下函数:
int FuncName( int , float );
整体的用法大概就像下面这样
public delegate void TestFunc(
void );
public static void ShowSTH(
void )
{
Console.WriteLine("Hi, Mr.Hill .");
}
static void main()
{
TestFunc FuncPtr = new TestFunc(ShowSTH);
//Call ShowSTH Function
FuncPtr();
}
在上面,可以看到ShowSTH assign 给 FuncPtr
用C/C++的话来说,就是FuncPtr指向ShowSTH
所以就可以呼叫FuncPtr,就代表呼叫ShowSTH这个Function
delegate大致就是这样的用法,有兴趣的欢迎指教。
Event就留到下一篇,打的有点累了~"~
--
【一路说到挂】 ︻
空谷残声 箫中剑 萧无人 箫中剑 空谷残声 箫中剑 现
正
疯狂兑现侠道精神 热
映
黄文择拒绝再配音的武痴传人 ︼
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.118.48.6
1F:推 sct830:测试了一下 Delegate 和 delegate 是不一样的唷~ 要注意~ 05/17 16:24
2F:推 sct830:在主程式中main 没办法编译过 因为会找不到进入点 05/17 16:26
3F:→ sct830:所以 原文的main 改成大写 compiler才会过~科科 05/17 16:26
4F:→ sct830:没说完整= = 我的环境是VS08 C# DEV应该不用大写 05/17 20:12