程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> C#事件機制學習

C#事件機制學習

編輯:.NET實例教程
C#的事件機制是基於委托實現的。實現一個事件,要先定義一個委托類型
class1
{
public delegate void mydelegate (myEventArgs e);
public event mydelegate event1;
}
然後我們可以使用+=和-=注冊、移除事件
class1.event1 += new mydelegate(new myEventArgs());
在class中引發事件時最好這樣
class1
{
public fireEvent()
{
if(event1 != null)
event1();
}
}


如果不想聲明自己的委托類型的話,可以使用System.EventHandler的委托類型
public delegate void EventHandler(object sender, EventArgs e);
其中EventArgs轉送附加參數。
可以實現自己的EventArgs類
class myEventArgs:EventArgs
{
}
類名最好以EventArgs 結尾,這是個默認規則
調用時如果不想使用參數可以傳遞
EventArgs.Empty



事件其實背後做了很多工作,自動生成一個委托實例、一個注冊委托的add_XXX方法、一個注銷委托的

Remove_XXX方法。事實上這兩個方法可以自己定制。只要聲明事件時使用以下語法:
public event MyDelegate1 Event1
{
add
{
}
remove
{
}
}
在其中實現自己的注冊函數即可。看上去是不是很像屬性的定義:)
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved