C 的事件處理機制

2022-03-14 17:22:33 字數 1410 閱讀 4854

今天,花費了一下午事件,終於算是了解了事件的處理機制。在c#中,對於事件的應用其實可以有四個步驟。

1.在事件發行者中定義乙個事件

2.在事件發行者觸發事件

3.在事件訂閱者中處理事件的處理程式

4.向事件發行者訂閱事件.在c#

中事件是經常被用到的一種概念。如果要實現乙個事件,首先要有兩個物件,乙個是觸發事件的物件,乙個是處理事件的物件。二者通過乙個委託被聯絡在一起

乙個簡單的例子,老公發工資了,老婆、兒子會自動獲得他的工資,呵呵!

code

1using

system;

2using

system.collections.generic;

3using

system.text;45

namespace614

}15public

datetime issudate

1618}19

public

salaryevent(

double

_mysalary, datetime _issudate)

2024}25

public

delegate

void

salarymeeventhandler(

object

sender, salaryevent e); 

//定義乙個工資發放委託

26class

salary

2729

public

event

salarymeeventhandler salaryme;

//通過委託定義乙個工資發放事件

30protected

virtual

void

onsalary(salaryevent e)

3138}39

public

void

issuesalary(

double

snum,datetime stime) 

//生成salaryevent物件,用於接受資料

4045

464748}

49class

mywife

50塊錢買衣服了!

",e.mysalary

*0.7

);5556}

57}58class

myson

59塊錢買玩具了!

",e.mysalary

*0.2

);63}64

}65class

me66

塊錢了!

",e.mysalary

*0.1

);70}71

}72class

test

7386}87

}8889

C 的事件處理機制

在以往的關於事件處理的程式中,我們更多的是採用一種迴圈等待的方式,即為了檢測某個事件是否發生,迴圈的檢測某個變數是否發生變化但這樣會占用大量的資源。而c 的事件處理機制提供了一種非常好的解決方案。程式不再不停的檢查裝置,而是等待訊息的到來,然後交給程式來處理他它。這樣的話,作業系統中只是傻瓜式的將訊...

C 的事件處理機制

在以往的關於事件處理的程式中,我們更多的是採用一種迴圈等待的方式,即為了檢測某個事件是否發生,迴圈的檢測某個變數是否發生變化但這樣會占用大量的資源。而c 的事件處理機制提供了一種非常好的解決方案。程式不再不停的檢查裝置,而是等待訊息的到來,然後交給程式來處理他它。這樣的話,作業系統中只是傻瓜式的將訊...

C 的事件處理機制應用

如果要在c 中定義乙個事件,首先你要創造乙個delegate 委派 用他來定義乙個你所想使用事件的標籤,然後你才能使用event關鍵字,在這個委派的基礎上定義乙個事件.兩點需要注意的是 第一,首先你要創造乙個委派,第二,根據你所創造的委派來定義乙個事件,這才是乙個完整的事件定義.假設我們把書中的pr...