今天,花費了一下午事件,終於算是了解了事件的處理機制。在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...