C 程式設計之委託與事件 二

2021-06-18 23:25:54 字數 1632 閱讀 7487

二、事件

1.了解概念

事件就是當物件或類狀態發生改變時,物件或類發出的資訊或通知。發出資訊的物件或類稱為"事件源",對事件進行處理的方法稱為"接收者",通常事件源在發出狀態改變資訊時,它並不知道由哪個事件接收者來處理.這就需要一種管理機制來協調事件源和接收者,c++中通過函式指標來完成的.在c#中事件使用委託來為觸發時將呼叫的方法提供型別安全的封裝。

在介紹事件之前我們先來了解幾個事件的基本概念和幾個重要素:

--事件的本質

-事件是特殊的委託例項

-事件關鍵字:event

--事件的四個要素:

-定義事件

-激發事件

-監聽事件

-執行事件

2.事件分析

在.net中,很多控制項都有相關的事件,如button的click事件,它能響應滑鼠的單擊事件。

--定義事件

delegate

void

eventhandler(

object

sender,eventargs e);

public

event

eventhandler click;

--激發事件:單擊滑鼠

--監聽事件

this

.button1.click

+=new

eventhandler(

this

.button1_click);

--執行事件

void

button1_click(

object

sender,eventargs e)//}

上面這個button的click事件是我們最常見的,這裡展示出了整個事件過程。接下來我們來看看乙個簡單的事件例項。

3.簡單例項--怎樣定義乙個完整的事件機制

一.定義委託

//定義事件委託

public

delegate

void

changedeventhandler(

object

sender, eventargs e);

二.定義事件

//定義乙個委託型別事件

public

event

changedeventhandler changed;

三.觸發事件

//用於觸發changed事件

protected

virtual

void

onchanged(eventargs e)

四.偵聽事件

mytext mytext 

=new

mytext();

mytext.changed 

+=new

mytext.changedeventhandler(mytext_chenged);

五.事件處理程式

//事件處理程式

private

static

void

mytext_chenged(

object

sender, eventargs e)

", ((mytext)sender).text);

這就完成了乙個完整的事件機制,詳細**如下:

c 程式設計之委託 事件與執行緒

委託是乙個類,它定義了方法的型別,使得可以將方法當作另乙個方法的引數來進行傳遞,這種將方法動態地賦給引數的做法,可以避免在程式中大量使用if else switch 語句,同時使得程式具有更好的可擴充套件性。在c 中使用delegate關鍵字定義委託,然後使用我們熟悉的函式呼叫的語法來呼叫委託。pu...

C 委託與事件講解 二

什麼是事件?event?點選事件?載入事件?一連串的模糊的概念衝擊著我們弱小的腦袋 那我們首先來看一下比較正統的感念吧 事件是類在發生其關注的事情時用來提供通知的一種方式。事件的發生一般都牽扯2個角色 事件發行者 publisher 乙個事件的發行者,也稱作是傳送者 sender 其實就是個物件,這...

c 委託與事件

c 委託與事件 心得 c 用委託來實現事件通知機制。委託相當與c 函式指標。整個過程涉及乙個呼叫者,乙個被呼叫者,還有就是這個委託。實現步驟有以下幾步 1.申明委託,2.定義呼叫者和呼叫的函式,3.定義被呼叫者和具體實現的函式 被呼叫的函式 1.申明委託 在包裡或者類裡,public public ...