2004 6 28 C 中的事件機制

2021-09-05 15:01:13 字數 871 閱讀 3436

發布(publish)和訂閱(subscribe):

c#中,物件可以發布一組事件供其他類訂閱。當發布類產生事件時,所有訂閱類都會得到通知。實現了「發布/訂閱」模式,即:定義了一種物件之間一對多的依賴關係,當乙個物件發生變化時,所有依賴於它的物件都會得到通知並自動更新。

事件(event)和委託(delegate):

c#中的時間是用委託實現的。發布類定義了訂閱類必須實現的委託。當事件發生時,訂閱類的方法將通過委託來呼叫。 處理事件的方法為事件處理方法。按習慣,.net framework中的事件處理方法返回值為void,有兩個引數。乙個是事件的「**」,也就是發布類。另乙個是eventargs派生而來的物件。eventargs是所有事件資料的基類,eventargs派生類包含了事件的所有資訊。

推薦閱讀的書為《c#程式設計(programming c#)》,由 o`reilly/中國電力出版社 出版。本文上面的介紹性文字摘抄於此書。

using system;

namespace myevent

catch(exception ex)

finally}}

//用來提供該事件的一些有用的資訊

public class temea:eventargs

}public void showtime()

public class tem}}

get}

}public class catchtem

//事件處理方法

private void tems_ontemea(object sender, temea e)

}public class catchtem2

private void tems_ontemea(object sender, temea e)}}

C 的事件機制

c 的事件機制是基於委託實現的。實現乙個事件,要先定義乙個委託型別 class1 然後我們可以使用 和 註冊 移除事件 class1.event1 new mydelegate new myeventargs 在class中引發事件時最好這樣 class1 如果不想宣告自己的委託型別的話,可以使用s...

c 事件機制

c 事件機制比mfc 理解起來更為容易。記錄如下。理解c 的事件機制,需要理解事件的三方,事件產生方,事件接收方,和事件本身的資料。下面直接參照網上的乙個例子來說明這三方。假設乙個溫度監測器,監測加熱爐的溫度,當溫度到達100度的時候報警。在這個例子中,事件本身是監測溫度,事件發生方是加熱爐,事件接...

C 事件機制

在所有關於c 事件機制的介紹中,我更傾向於發布者 訂閱者 publisher subscriber 這種描述。理解事件機制並不是一件容易的事情,它所涉及的思想值得我們好好去研究。本文資源來自 c 與.net技術平台實戰演練 中國青年出版社 談到事件,我們涉及到兩個角色 事件發布者 publisher...