[爆卦]delegate c#用法是什麼?優點缺點精華區懶人包

為什麼這篇delegate c#用法鄉民發文收入到精華區:因為在delegate c#用法這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者godman362 (Shizuru)看板NUU_CSIE標題[心得] delegate &am...


花了半天~一天的時間

把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

你可能也想看看

搜尋相關網站