c#中的事件處理程式是乙個帶有特定輸入引數的**,如下所示:
public delegate void myeventhandler(object sender, myeventargs e);
上面定義中的第乙個引數(
sender
)指定了發生事件的物件,第二個引數(
e)儲存著在事件處理程式中要用到的資料。
myeventargs
類是繼承
eventargs
類得來的,
eventargs
類是mouseeventargs
、listchangedeventargs
等更專業化的類的基礎類。對於
gui事件,我們可以使用這些特定的
eventargs
類的物件,而無需自己建立特定的
eventargs
類。然而,對於非
gui事件而言,我們仍然需要建立自己的特定的
eventargs
類,儲存希望向**物件傳遞的資料。我們可以通過繼承
eventargs
類建立自己特定的
eventargs
類:public class myeventargs eventargs
在事件處理程式中,**物件的呼叫需要用到
event
關健字,如下所示:
public event myeventhandler myevent;
下面我們將建立二個類,體會
.net
框架中事件處理機制的工作原理。在對**的討論的第二個步驟中,要求我們定義與定義的**有完全相同的輸入引數的方法。在我們的例子中,類
a將提供事件處理程式(與**物件具有相同輸入引數的方法。),它將建立**物件(對**討論中的第三步)並安裝事件處理程式。類
a然後會將**物件傳遞給類
b。當類
b中有事件出現時,它就會執行類
a中的事件處理程式方法。
using system;
//步驟
1:建立**物件
public delegate void myhandler1(object sender,myeventargs e);
public delegate void myhandler2(object sender,myeventargs e);
//步驟
2:建立事件處理程式方法
class a", e.m_id);
} public void onhandler2(object sender,myeventargs e)", e.m_id);
} //步驟3
:建立**,安裝事件處理程式,並向啟動事件的物件註冊。
public a(b b)
} //步驟4
:通過**呼叫封裝的方法。
class b
} public void fireevent2(myeventargs e)
} }
public class myeventargs eventargs
public class driver
}
C 中的事件處理
萬物皆物件!物件與物件之間不僅僅是存在關係,更是具有千絲萬縷的聯絡。關於物件之間的關係,我們在 sql server 中已經討論過。本文要討論的是它們之間存在的聯絡,即 如何使得乙個物件發生變化時,另乙個物件也能隨之發生變化。這種 乙個物件的狀態改變導致其它物件狀態改變 的現象,我們稱之為事件。在檢...
C 中的事件處理
事件 event 是乙個非常重要的概念,我們的程式時刻都在觸發和接收著各種事件 滑鼠點選事件,鍵盤事件,以及處理作業系統的各種事件。所謂事件就是由某個物件發出的訊息。比如使用者按下了某個按鈕,某個檔案發生了改變,socket上有資料到達。觸發事件的物件稱作傳送者 sender 捕獲事件並且做出響應的...
Javascript中事件處理程式
事件繫結 事件處理程式 var fun function 移除事件處理程式 fun function 優點 簡單方便 缺點 js和html耦合度太高,每次修改函式要變動兩個地方。存在乙個時差問題,使用者可能會在html元素一出現就觸發事件,但是事件處理程式沒有載入好document.geteleme...