C 中的事件處理程式

2021-05-21 22:42:31 字數 1856 閱讀 4252

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...