C#事件支持發(fā)布者/訂閱者模式,發(fā)布者將事件通知給訂閱者,而訂閱者在事件發(fā)生時(shí)調(diào)用已經(jīng)注冊(cè)好的事件處理函數(shù)。
public delegate void delUpdate(); //委托定義,相當(dāng)于一個(gè)函數(shù)簽名,函數(shù)指針
public event delUpdate ENotify; //定義事件,該事件引發(fā)此委托類型的事件處理函數(shù)
private int a = 2;
public int A
{
get { return a; }
set
{
a = value;
if (ENotify != null) //如果事件不等于空就是說(shuō)有訂閱者注冊(cè)過(guò)該事件,比如:Publisher.getInstance().ENotify +=new Publisher.delUpdate(GetData);也就是說(shuō)觸發(fā)事件后有相應(yīng)的事件處理函數(shù)被調(diào)用。
{
ENotify();
} }
}
public Observer()
{
Publisher.getInstance().ENotify +=new Publisher.delUpdate(GetData);
}
public void GetData()
{
oa = Publisher.getInstance().A;
ob = Publisher.getInstance().B;
oc = Publisher.getInstance().C;
}
posted on 2008-06-30 11:07
天書(shū) 閱讀(1506)
評(píng)論(0) 編輯 收藏 引用